<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:maymaym</id>
  <title>may maym</title>
  <subtitle>Read it Again</subtitle>
  <author>
    <name>maymay</name>
  </author>
  <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom"/>
  <updated>2009-12-14T19:46:56Z</updated>
  <lj:journal userid="1346569" username="maymaym" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://maymaym.livejournal.com/data/atom" title="may maym"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:64870</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/64870.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=64870"/>
    <title>Crosspost: My impressions on the new “sex-positive social network” Blackbox Republic</title>
    <published>2009-12-14T19:46:34Z</published>
    <updated>2009-12-14T19:46:56Z</updated>
    <category term="maybe maimed"/>
    <category term="internet marketing"/>
    <category term="tech/computing"/>
    <category term="tech news"/>
    <category term="web design"/>
    <category term="crosspost"/>
    <category term="business &amp;amp;amp; e-commerce"/>
    <category term="writing and blogging"/>
    <category term="information &amp;amp;amp; communication"/>
    <category term="branding &amp;amp;amp; identity"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2009/12/14/blackbox-republic-social-network-review/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2009/12/14/blackbox-republic-social-network-review/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;This post was &lt;a href="http://maybemaimed.com/2009/12/12/my-impressions-on-the-new-sex-positive-social-network-blackbox-republic/"&gt;originally published on my other blog&lt;/a&gt;, a much more Not Safe For Work site, at &lt;a href="http://maybemaimed.com/2009/12/12/my-impressions-on-the-new-sex-positive-social-network-blackbox-republic/"&gt;maybemaimed.com&lt;/a&gt;. However, it turns out that blog is &lt;a href="http://identi.ca/notice/16736914"&gt;censored in various countries, such as Dubai&lt;/a&gt;. Gotta love Internet censorship. &lt;em&gt;Sigh.&lt;/em&gt; Anyways, since I think the material there is interesting and technology-relevant, and in order to help people avoid Internet censorship, I&amp;#8217;m cross-posting the contents here. Enjoy.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Social media. Internet publishing. Privacy. Three phrases that have seemed to be at tenacious odds with each other in a multitude of subtle and not-so-subtle ways. For people like me, who have progressive views about sexuality, these three things are constantly on our minds. How do we participate in the online revolution without being forced to &amp;#8220;come out&amp;#8221; about every sex act we enjoy, some of which are still illegal thanks to &lt;a href="http://malesubmissionart.com/post/271520580/in-forbidding-darkness-a-young-man-is"&gt;draconian restrictions on sexual freedom&lt;/a&gt;, &lt;a href="http://maybemaimed.com/2009/11/01/on-youth-sexuality-education-and-your-fears/"&gt;even (and especially?) in America&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This month, a new social network called &lt;a href="http://blackboxrepublic.com/"&gt;Blackbox Republic&lt;/a&gt; (BBR) is attempting to tackle this head-on and aims to create a place for, &lt;a href="http://www.readwriteweb.com/archives/can_blackbox_republic_breathe_new_life_into_the_on.php"&gt;as Marshall Kirkpatrick put it&lt;/a&gt;, this particular &lt;q cite="http://www.readwriteweb.com/archives/can_blackbox_republic_breathe_new_life_into_the_on.php"&gt;large and unserved group of people&lt;/q&gt;. Although BBR is clearly a business, it&amp;#8217;s a business whose creators have laudable intentions for positive social and cultural change. In that respect, and in many others, Blackbox Republic is worth a close look.&lt;/p&gt;
&lt;p&gt;I was informed about the venture via &lt;a href="http://clarissethorn.wordpress.com/"&gt;Clarisse Thorn&lt;/a&gt; many months ago. I got in touch with BBR and signed up for a limited-offer &amp;#8220;founder&amp;#8221; account—basically a private beta. The founder account gave me free access to the &lt;a href="http://www.blackboxrepublic.com/private-and-social"&gt;features of the BlackboxRepublic.com website&lt;/a&gt; for what would &lt;a href="http://www.blackboxrepublic.com/dues"&gt;normally be a $25 monthly subscription fee&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;So, without further ado, here are my impressions about Blackbox Republic, and how its launch may be just what the Internet needs to get us moving in the right direction with regards to personal privacy, and mainstream awareness of the different needs of different people on the Internet.&lt;/p&gt;
&lt;h2&gt;Mainstream sex-positivity or a VIP room in cyberspace? Or both?&lt;/h2&gt;
&lt;p&gt;Over the past few months, Blackbox Republic has been building a marketing arsenal of anticipation and intrigue. Its creators are successful in non-sexuality-focused spheres of influence: &lt;a href="http://www.linkedin.com/in/samlawrence"&gt;Sam Lawrence&lt;/a&gt; is the respected former Chief Marketing Officer of &lt;a href="http://www.jivesoftware.com/"&gt;Jive Software, Inc.&lt;/a&gt;, and April Donato, has experience in community management. They also both jive (pun!) well with the sex-positive movement, discussing it at length in the early stages of their marketing efforts after de-cloaking the new company.&lt;/p&gt;
&lt;p&gt;In &lt;a href="http://www.socialnetworkingwatch.com/2009/08/sam-lawrence-ceo-of-blackbox-republic.html"&gt;an interview for Social Networking Watch&lt;/a&gt;, Sam Lawrence said,&lt;/p&gt;
&lt;blockquote cite="http://www.socialnetworkingwatch.com/2009/08/sam-lawrence-ceo-of-blackbox-republic.html"&gt;&lt;p&gt;[&lt;strong&gt;Sam Lawrence:&lt;/strong&gt;] The co-founder [April Donato] and myself are part of [the sex-positive] community. Sex positive means that your sexuality is not an issue. You don’t have an issue with other people’s sexuality. You’re open to what other people are interested in and what their boundaries are, and you’re open with your own.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;[&lt;strong&gt;Interviewer:&lt;/strong&gt;] To what extent do you practice a sex-positive lifestyle?&lt;/p&gt;
&lt;p&gt;[&lt;strong&gt;Sam Lawrence:&lt;/strong&gt;] From the perspective of sex not being an issue, I think that love is generated by people being open enough about who they are as people to put all of themselves out on the table. As far as putting all of myself on the table, it’s something that I do every single day.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I have an enormous amount of respect for anyone able to so capably present themselves as authentically as Sam does. On the eve of &lt;a href="http://kinkforall.pbworks.com/KinkForAllNewYorkCity2Schedule"&gt;KinkForAll New York City 2&lt;/a&gt;, I met Sam and April at one of their &amp;#8220;founder meetups&amp;#8221; and had the chance to talk to them face-to-face. Our conversation revolved around the importance of steadfastly holding true to one&amp;#8217;s own desires and having appropriate places to express those things with appropriate communication tools. I really liked their emphasis on self-identification over labeling throughout our discussion.&lt;/p&gt;
&lt;p&gt;I also really appreciated the way that Sam and April spoke about their target audience. Blackbox Republic will welcome everyone, but it&amp;#8217;s not &lt;em&gt;designed&lt;/em&gt; for everyone, and I think that&amp;#8217;s a good thing. &lt;a href="http://onlinedatingpost.com/archives/2009/12/blackbox-republic-remixs-dating-love-and-social-life/"&gt;David Evans writing at Online Dating Post says&lt;/a&gt;,&lt;/p&gt;
&lt;blockquote cite="http://onlinedatingpost.com/archives/2009/12/blackbox-republic-remixs-dating-love-and-social-life/"&gt;&lt;p&gt;BBR has room for everyone, but is not for everyone. Definitely catering to non-mainstream folks, it will soon feature a constellation of micro-communities, or groups, called Camps. BBR doesn’t tell people how to organize their camps; we’ll do it ourselves, thankyouverymuch.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;So is Blackbox Republic a dating site, or a social network? Well, both, kind of. Part of BBR&amp;#8217;s slogan includes, &amp;#8220;Dates will happen. Sex will happen. It matters how you get there.&amp;#8221; The implication, of course, being that the current suite of tools for finding love or play online—sites like &lt;a href="http://alt.com/"&gt;Alt.com&lt;/a&gt;, &lt;a href="http://okcupid.com/"&gt;OkCupid&lt;/a&gt;, and &lt;a href="http://craigslist.org/"&gt;countless&lt;/a&gt; &lt;a href="http://personals.nerve.com/"&gt;personals&lt;/a&gt; &lt;a href="http://personals.yahoo.com/"&gt;boards&lt;/a&gt;—focus too strongly on the end result, turning matchmaking into a meat market instead of the natural process of getting to know one another. The focus BBR is placing on each person&amp;#8217;s &amp;#8220;journey&amp;#8221; is an extremely welcome paradigm shift in the online dating world.&lt;/p&gt;
&lt;p&gt;Along with the welcome and (IMHO, painfully obviously better) new approach to online dating, however, Blackbox Republic faces some real challenges. For new users, the service costs a minimum of $5 a month to use (and $9 per month for new sign-ups starting in 2010), which gives access to basic features like a personal profile. For $25 a month, members get added features like the ability to list real-world meet-ups, send private messages, and partake in a virtual &amp;#8220;gifting&amp;#8221; economy (think LiveJournal&amp;#8217;s &amp;#8220;&lt;a href="http://www.livejournal.com/shop/vgift.bml?cat=gifts"&gt;virtual gifts&lt;/a&gt;&amp;#8220;).&lt;/p&gt;
&lt;p&gt;For that reason, BBR has been called a &amp;#8220;members-only club.&amp;#8221; There are some legitimate differences of opinion as to whether this is a positive or a negative thing. In a press release over the summer, &lt;a href="http://blogs.zdnet.com/collaboration/?p=741"&gt;Blackbox Republic is reported as stating&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote cite="http://blogs.zdnet.com/collaboration/?p=741"&gt;&lt;p&gt;Blackbox Republic will be a members-only experience that will unite the sex-positive community and give them a personal, private and secure way to connect online and in person.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Writing for ZDNet, &lt;a href="http://blogs.zdnet.com/collaboration/?p=1123"&gt;Oliver Marks likens Blackbox Republic&amp;#8217;s approach to online dating to the fashionability of owning an Apple computer&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote cite="http://blogs.zdnet.com/collaboration/?p=1123"&gt;&lt;p&gt;Think of Blackbox Republic as a fashionable online ‘members-only’ club where you might expect to meet people with similar interests to your own, and ideally the person of your dreams. […] Blackbox Republic is arguably an Apple product to Facebook’s Windows look &amp;#038; feel: a much more intimately crafted, fuller featured personal user interface which should appeal to Apple generation sensibilities.&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class="wp-caption alignright" style="width: 310px"&gt;&lt;a href="http://maybemaimed.com/wp-content/uploads/2009/12/bbr-chic-new-club-design-screenshot.png"&gt;&lt;img src="http://maybemaimed.com/wp-content/uploads/2009/12/bbr-chic-new-club-design-screenshot-300x214.png" alt="Many pages on Blackbox Republic&amp;#39;s website showcase fashionably dressed women." title="bbr-chic-new-club-design-screenshot" width="300" height="214" class="size-medium wp-image-1163" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Many pages on Blackbox Republic's website showcase fashionably dressed women.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Indeed, almost everything about Blackbox Republic&amp;#8217;s marketing and design seems to me as though it&amp;#8217;s positioning itself as the equivalent of the hip, new, &lt;em&gt;and exclusive&lt;/em&gt; nightclub down the street. There are images of super-chic women in short skirts and tight pants all over the Blackbox Republic promotional pages—way more than there are pictures of men. I was (yet again) &lt;a href="http://malesubmissionart.com/post/270107422/an-uncircumcised-dark-skinned-man-lays-on-his-side"&gt;put-off by this over-prevalence of women in all advertising material&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This isn&amp;#8217;t really a criticism of the site, but rather a statement of disappointment that the marketing gurus behind the effort seemed to me to have succumbed to overwhelming cultural pressure to sell their site with &lt;a href="http://malesubmissionart.com/post/168794536/a-naked-man-lays-on-a-bed-next-to-a-video-camera"&gt;old-school sex appeal: women&amp;#8217;s sex appeal, of course&lt;/a&gt;. How…traditional.&lt;/p&gt;
&lt;p&gt;Not only is the &lt;a href="http://twitter.com/maymaym/statuses/6486477499"&gt;Blackbox Republic intro video markedly gender-skewed&lt;/a&gt;, but somewhere along the line &lt;a href="http://www.xconomy.com/seattle/2009/12/09/blackbox-republic-no-longer-just-sex-positive-opens-alternative-social-site/"&gt;Sam and April decided to drop the &amp;#8220;sex-positive&amp;#8221; phraseology from their marketing&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote cite="http://www.xconomy.com/seattle/2009/12/09/blackbox-republic-no-longer-just-sex-positive-opens-alternative-social-site/"&gt;&lt;p&gt;[L]ike most startups, Blackbox decided it needed to change up. Observers were confused by the sex-positive label.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Oh well. I think this just goes to further showcase how much more social change we really need in our culture.&lt;/p&gt;
&lt;p&gt;However, while the clubby, cliquey feel is totally my own subjective perception, there are other issues at play here, too. Most notably, as Clarisse Thorn and many others rightfully remind us very often, &lt;a href="http://clarissethorn.wordpress.com/2009/04/17/my-kinkforall-nyc-presentation/"&gt;the sex-positive movement is overwhelmingly white&lt;/a&gt;, middle- to upper-class, college-educated, and privileged in a huge number of ways that many people often take for granted. Even without a for-pay social network, not everyone who wants to &lt;em&gt;can&lt;/em&gt; participate in the great-sex-for-everyone party atmosphere of many sex-positive niches.&lt;/p&gt;
&lt;p&gt;Will creating a &amp;#8220;members-only club&amp;#8221; of sex-positivity on the Internet really be a positive thing for &amp;#8220;the movement&amp;#8221;? Well, maybe. Although it has the potential to exclude lower-income people from the experience, who are sadly also often the people with the most pressing need for the kinds of privacy-related tools BBR offers (school teachers spring to mind!), one upside is that &lt;a href="http://www.socialnetworkingwatch.com/2009/08/sam-lawrence-ceo-of-blackbox-republic.html"&gt;Blacbox Republic promises to pledge a portion of membership dues to a charity of the user&amp;#8217;s choice&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote cite="http://www.socialnetworkingwatch.com/2009/08/sam-lawrence-ceo-of-blackbox-republic.html"&gt;&lt;p&gt; It’s $25 a month and $5 of those community dues go to charity. One way to think about it is if you’re sex-positive, you can either spend money on expensive coffee every month or upgrade your social life and meet other sex-positive people like you.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Inescapably, the major selling point of any social network is, of course, the network! If your friends aren&amp;#8217;t on Twitter, then you&amp;#8217;re probably not going to find it useful. The same truth holds for Blackbox Republic: if the users you want to interact with aren&amp;#8217;t there, I doubt you&amp;#8217;re going to find the experience fruitful. Due to the membership fees and the socioeconomic realities of the sex-positive community, I&amp;#8217;m concerned that BBR&amp;#8217;s current business model is &lt;em&gt;too&lt;/em&gt; exclusive, and as a result it will have a lot of trouble attracting the kind of diverse community its creators seem to be hoping for.&lt;/p&gt;
&lt;p&gt;Yet, some others think differently (pun!). For instance, &lt;a href="http://www.accmanpro.com/2009/07/15/blackbox-republic-and-the-sex-positive-community/"&gt;Dennis Howlett welcomes the for-pay model for a social network&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote cite="http://www.accmanpro.com/2009/07/15/blackbox-republic-and-the-sex-positive-community/"&gt;&lt;p&gt;anyone can join provided they’re willing to pay the $25 a month (I like that he has a pay model from the get go. That sorts out the weirdos and hangers on from day one)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I wonder if adopting a &lt;a href="http://en.wikipedia.org/wiki/Freemium"&gt;free-mium&lt;/a&gt; approach might work better. Still, there are real-world limits to business. Everyone needs to make money, and I don&amp;#8217;t think Blackbox Republic&amp;#8217;s business model is inherently more exclusive than, say, purchasing access to porn. If anything, BBR&amp;#8217;s got some real promise to inject much-needed financial awareness to the sexually insensitive corporate infrastructure of our society. Nevertheless, convincing people to join &amp;#8220;the Republic&amp;#8221; is going to be a hard sell.&lt;/p&gt;
&lt;h2&gt;Show me the features!&lt;/h2&gt;
&lt;p&gt;Let&amp;#8217;s say you do decide to join. What do you get? Other than the sex-positive mindset, what&amp;#8217;s the benefit?&lt;/p&gt;
&lt;p&gt;Well, the bulk of the experience is what you&amp;#8217;d expect. Profiles (called &amp;#8220;personas&amp;#8221;), messaging, user search capabilities (called &amp;#8220;explore&amp;#8221;), and so forth. A Twitter-like &amp;#8220;activity stream&amp;#8221; dominates the main page where you can post text, picture, or video status updates. Event listings fill the sidebar. (I&amp;#8217;m not going to provide internal screenshots in deference to &lt;a href="http://www.blackboxrepublic.com/faq"&gt;BBR&amp;#8217;s strict confidentiality rules&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;While that&amp;#8217;s fun, it&amp;#8217;s nothing special. What makes Blackbox Republic different is flexibility, and privacy.&lt;/p&gt;
&lt;h3&gt;Goodbye drop-downs, hello sliders!&lt;/h3&gt;
&lt;div class="wp-caption alignright" style="width: 260px"&gt;&lt;a href="http://maybemaimed.com/wp-content/uploads/2009/12/bbr-sliders-screenshot.png"&gt;&lt;img src="http://maybemaimed.com/wp-content/uploads/2009/12/bbr-sliders-screenshot-250x300.png" alt="An innovative new interface acknowledges (most of) the diversity in human sexual experience and desire." title="bbr-sliders-screenshot" width="250" height="300" class="size-medium wp-image-1165" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;An innovative new interface acknowledges (most of) the diversity in human sexual experience and desire.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Blackbox Republic&amp;#8217;s most visible feature is the way its interface allows you to flexibly self-identify various facets of yourself. Rather than give you static drop-down menus or radio buttons for things like your sexual orientation and relationship status, you&amp;#8217;re presented with sliders you can change at will. Perhaps you&amp;#8217;re feeling particularly same-sex attracted one day. Just move the &amp;#8220;Orientation&amp;#8221; slider towards the &amp;#8220;Gay&amp;#8221; end and away from the &amp;#8220;Hetero&amp;#8221; end. If that changes tomorrow, just move the slider back. Sho-weet!&lt;/p&gt;
&lt;p&gt;BBR offers you 5 different sliders for your profile. In addition to the one for sexual orientation, you also get one for relationship &amp;#8220;status&amp;#8221; (ranging from attached to unattached, with Facebook&amp;#8217;s famous &amp;#8220;it&amp;#8217;s complicated&amp;#8221; neatly in the middle), whether you&amp;#8217;re available for more partners or not, how comfortable you are with casual sexual activity, and how eagerly you&amp;#8217;re looking to par-tay. I&amp;#8217;m instantly reminded of &lt;a href="http://fetlife.com/"&gt;FetLife&lt;/a&gt;&amp;#8217;s innovative, if dull-looking, mechanism for specifying multiple relationships. Blackbox Republic gives you similar flexibility as FetLife does but presented in a superb and far more intuitive interface.&lt;/p&gt;
&lt;p&gt;All that said, one slider is conspicuously missing: the one for gender. The sliders are a very interesting idea and might just be the most innovative feature of the entire site. It speaks volumes about the sensitive and thoughtful mindset of the developers, and that&amp;#8217;s why I&amp;#8217;m so disappointed that the interface for self-identifying gender is relegated to the Sex 1.0 days of a single, binary option of &amp;#8220;male&amp;#8221; or &amp;#8220;female.&amp;#8221;&lt;/p&gt;
&lt;p&gt;What gives? Are polyamorous people more welcome here than those who don&amp;#8217;t fit the gender binary? I hope this is simply an omission that will be fixed as the service matures, since I couldn&amp;#8217;t find any other reason why gender was absent from the sliders. For extra credit, I hope to see &lt;em&gt;different&lt;/em&gt; profile options for &amp;#8220;Sex&amp;#8221; and &amp;#8220;Gender,&amp;#8221; two distinct concepts that frequently and incorrectly get used interchangeably. This would make it possible to represent complex gender presentations like &lt;a href="http://sexpositive.wikia.com/wiki/Additive_gender"&gt;additive gender&lt;/a&gt; on a social networking interface for the first time ever, and that&amp;#8217;d totally be something to write home about!&lt;/p&gt;
&lt;h3&gt;Privacy and security&lt;/h3&gt;
&lt;p&gt;The other major selling point of Blackbox Republic is its careful attention to privacy. The entire offering, including its name, is predicated on letting users very carefully segment their information based on their privacy boundaries. I love some of the things BBR has done to enable this, and I can only imagine it&amp;#8217;s going to get better from here.&lt;/p&gt;
&lt;h4&gt;Blackbox Republic&amp;#8217;s Web of Trust&lt;/h4&gt;
&lt;p&gt;There are three levels of privacy, which (as far as I can figure out) map directly to the level of trust other members have gained within the Republic&amp;#8217;s community. It works like a &lt;a href="http://en.wikipedia.org/wiki/Web_of_trust"&gt;web of trust&lt;/a&gt;. New users are &amp;#8220;un-vouched.&amp;#8221; As they begin to interact with others on the site and, hopefully, make some friends, they should receive &amp;#8220;vouches&amp;#8221;—or votes of trust—from previously-vouched members. As a member, you get to control whether something you do, such as posting a status update, gets sent to the &amp;#8220;public,&amp;#8221; (i.e., the entire public-facing Internet), to all Blackbox Republic members (i.e, to both vouched and un-vouched members) or only to vouched members.&lt;/p&gt;
&lt;p&gt;Additionally, privacy settings allow you to specify whether you want to allow un-vouched members to send you private messages, to follow your updates, to comment on your posts, or to see you in search results.&lt;/p&gt;
&lt;p&gt;Unlike Facebook, which has very good privacy controls that almost nobody on Earth is aware of (thus negating the control&amp;#8217;s usefulness), Blackbox Republic makes it a point to highlight their privacy controls at just about every sensical turn. Each of the settings I found defaults to the most private setting, not the most public, which is exactly the right move. I gotta say, I found turning &lt;em&gt;off&lt;/em&gt; privacy settings instead of having to turn (or leave) them on to be a really empowering feeling.&lt;/p&gt;
&lt;h4&gt;You&amp;#8217;re not a &amp;#8220;friend,&amp;#8221; you&amp;#8217;re an acquaintance!&lt;/h4&gt;
&lt;p&gt;Moreover, the Blackbox Republic platform makes a native distinction between &amp;#8220;friends&amp;#8221; (again, like Facebook, or FetLife) and &amp;#8220;followers&amp;#8221; (like Twitter). When I friend someone, I&amp;#8217;m connected to them in a way that I&amp;#8217;m not if I just follow someone. I&amp;#8217;m not yet certain what the practical distinction between &amp;#8220;friending&amp;#8221; and &amp;#8220;following&amp;#8221; are, other than the fact that your view of the people you&amp;#8217;re connected with is segmented based on which button you clicked, but I think the distinction is a very appropriate and natural one to embed in the software.&lt;/p&gt;
&lt;p&gt;This separation is probably the single most important innovation in the space of social networks as a medium of communication and collaboration that I can point at. I love that I can indicate without ambiguity which people I want to remain in constant communication with and which I simply want to watch from a distance. After all, aren&amp;#8217;t at least &lt;em&gt;some&lt;/em&gt; of your &amp;#8220;friends&amp;#8221; on Facebook really just &amp;#8220;acquaintances&amp;#8221; in reality? I think that for the first time ever in a social network, Blackbox Republic gets this feature right. Now, if only I could figure out what it actually &lt;em&gt;does&lt;/em&gt;. :)&lt;/p&gt;
&lt;h4&gt;What? No on-the-wire encryption?!&lt;/h4&gt;
&lt;p&gt;With all that being said, there&amp;#8217;s still at least one really frightening problem with Blacbox Republic&amp;#8217;s careful attention to privacy: as far as I could tell, no part of my session is &lt;a href="http://en.wikipedia.org/wiki/Transport_Layer_Security"&gt;&lt;acronym title="Secure Sockets Layer"&gt;SSL&lt;/acronym&gt;/TLS&lt;/a&gt; encrypted!&lt;/p&gt;
&lt;div class="wp-caption alignleft" style="width: 310px"&gt;&lt;a href="http://maybemaimed.com/wp-content/uploads/2009/12/bbr-login-screen.png"&gt;&lt;img src="http://maybemaimed.com/wp-content/uploads/2009/12/bbr-login-screen-300x263.png" alt="Stunningly, for a site that sells privacy, not even Blackbox Republic&amp;#39;s login form is on a secure page." title="bbr-login-screen" width="300" height="263" class="size-medium wp-image-1164" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Stunningly, for a site that sells privacy, not even Blackbox Republic's login form is on a secure page.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;The entire BlackboxRepublic.com website is served over &lt;acronym title="HyperText Transfer Protocol"&gt;HTTP&lt;/acronym&gt;, including the login form and—again, as far as I could tell—every  page on the &lt;em&gt;inside&lt;/em&gt; of the site. This means that it&amp;#8217;s trivial for malicious people who don&amp;#8217;t even have a Blackbox Republic subscription to intercept, eavesdrop, and modify my interaction with the site. They could watch—and save—private messages between me and one of my friends (or lovers!), for instance.&lt;/p&gt;
&lt;p&gt;In Blackbox&amp;#8217;s defense, I don&amp;#8217;t know of any social network that protects you from this. FetLife is another example of a website that should seriously consider &lt;acronym title="HyperText Transfer Protocol Secured; HTTP over SSL"&gt;HTTPS&lt;/acronym&gt;-only pages, but as of this writing hasn&amp;#8217;t implemented it. Therein lies one of the most frightening oversights in the entire social networking space: regardless of so-called privacy settings, everything you do on the vast majority of social networks, blogs, and other sites on the Internet are the equivalent of passing notes between friends in a classroom. Better hope that big bully who likes to steal your lunch money doesn&amp;#8217;t open the note and read it himself while he&amp;#8217;s passing along your login details!&lt;/p&gt;
&lt;p&gt;The thing is, few other social networking sites place so strong a spotlight on user privacy and security. Since Blackbox Republic seems to be nobly and rightfully holding itself up to a new standard of privacy, I feel justified in pointing out this glaring omission in their service offering. Given everything else they&amp;#8217;ve done &lt;em&gt;so well&lt;/em&gt;, and how well-aligned the majority of their technical implementation seems to be with their philosophy, this omission came as a big surprise to me.&lt;/p&gt;
&lt;p&gt;Until Blackbox Republic only serves &lt;acronym title="HyperText Transfer Protocol Secured; HTTP over SSL"&gt;HTTPS&lt;/acronym&gt; traffic for all private areas of their site, I can&amp;#8217;t make a recommendation in good conscious that it&amp;#8217;s the place to be for privacy-conscious people. But again, despite public opinion to the contrary, I&amp;#8217;ve never been able to make that claim for FetLife either.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Blackbox Republic is one of the most interesting websites on the Internet today. Its privacy-conscious and sexually open approach to social networking and online dating deserves huge praise. Its technical implementation—although plagued with some glaring oversights for now—is to be seriously respected.&lt;/p&gt;
&lt;p&gt;From a social change perspective, I think the site is a mixed bag. Its exclusivity arguably makes the insularity of the sexuality communities an even bigger problem than it already is. On the other hand, the market-value of that very same exclusivity, if steered toward a benevolent purpose, can end up benefiting philanthropic, non-profit, and other sex-positive endeavors that often struggle to find necessary financial support.&lt;/p&gt;
&lt;p&gt;Moreover, Blackbox Republic&amp;#8217;s internal gifting economy does seem to encourage a sort of altruistic nature among members. How that may or may not translate into increased support for non-commercial activists has yet to be seen. Nay-sayers should remember that this kind of thing simply hasn&amp;#8217;t been done before and the net effect could be quite positive.&lt;/p&gt;
&lt;p&gt;Having just launched, however, I don&amp;#8217;t think Blackbox Republic should be touted as the go-to site for sex-positive people quite yet. Like other social networks, it needs to grow to become truly useful, and its subscription fee business model poses a serious obstacle to many people. I was fortunate to get in with a free &amp;#8220;founder&amp;#8221; account, but I have mixed feelings about encouraging my friends to join me knowing they—or someone nice enough to &amp;#8220;gift&amp;#8221; a limited-time subscription to them—will have to pay for the service.&lt;/p&gt;
&lt;p&gt;Additionally, its focus on being, well, a black box and &lt;a href="http://www.xconomy.com/seattle/2009/12/09/blackbox-republic-no-longer-just-sex-positive-opens-alternative-social-site/"&gt;its commitment to not allow Google or other search engines to index its internal content&lt;/a&gt; simply doesn&amp;#8217;t resonate that strongly with me.&lt;/p&gt;
&lt;blockquote cite="http://www.xconomy.com/seattle/2009/12/09/blackbox-republic-no-longer-just-sex-positive-opens-alternative-social-site/"&gt;&lt;p&gt;Lawrence emphasizes that what members say in Blackbox Republic will stay private. There’s no danger of what they post inside becoming part of their “Google resume,” as he puts it. He says he would resist efforts from search engines to index content the way Facebook and Twitter allow. “The value proposition is this is the first private, large social network out there,” Lawrence says.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Put simply, and noting that I&amp;#8217;m probably not the majority case here, &lt;a href="http://maybemaimed.com/2009/11/14/online-reputation-management-for-sex-bloggers-when-a-tweet-wont-do/"&gt;I &lt;em&gt;rely&lt;/em&gt; on my &amp;#8220;Google résumé,&amp;#8221;&lt;/a&gt; to use Sam&amp;#8217;s words, to live the life I want. My lukewarm reaction to this isn&amp;#8217;t a criticism of the goal, simply an observation that it turns out I&amp;#8217;m not in the ideal target market for Blackbox Republic&amp;#8217;s value proposition.&lt;/p&gt;
&lt;p&gt;In other words, I think I&amp;#8217;m &amp;#8220;too out&amp;#8221; for this site to be immediately useful to me. The fact that FetLife is not readily available to the public Internet is the single biggest reason why I don&amp;#8217;t sign on to that site very often, and so I have the same reason not to spend all that much time behind the curtains of Blackbox Republic.&lt;/p&gt;
&lt;p&gt;Nevertheless, many other people do. If you&amp;#8217;re among the cross-section of the populace who&amp;#8217;d like a sociosexual experience online and would also like to effectively outsource your social reputation management, if you will, but you feel that sites like Facebook just aren&amp;#8217;t cutting it, then Blackbox Republic is definitely worth checking out.&lt;/p&gt;
&lt;p&gt;If you do check it out, or even if you don&amp;#8217;t, I&amp;#8217;d love to know what you think in the comments. And if you&amp;#8217;re definitely sold, consider signing up via &lt;a href="http://www.blackboxrepublic.com/partner/maymay"&gt;my partner link&lt;/a&gt;. Full disclosure: signing up that way earns me a small commission. If you&amp;#8217;d rather sign up but not give me a commission for the referral, just register from the front page.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:64398</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/64398.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=64398"/>
    <title>What Kind of Man</title>
    <published>2009-04-30T14:09:13Z</published>
    <updated>2009-04-30T14:09:13Z</updated>
    <category term="maybe maimed"/>
    <category term="personal"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2009/04/30/what-kind-of-man/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2009/04/30/what-kind-of-man/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Over the past month or so, several people with whom I am close—either because we were once close and reconnected, or because we are newly close—have remarked on the jewelry I wear. I have five thin chain bracelets; one around each wrist and ankle, and a fifth closely fitted at my neck. I remember the nights &lt;a href="http://saraeileen.com/"&gt;Sara&lt;/a&gt; put them there.&lt;/p&gt;
&lt;p&gt;&amp;#8220;You&amp;#8217;re still wearing these,&amp;#8221; each of these friends said to me as they slipped a finger underneath one of them.&lt;/p&gt;
&lt;p&gt;&amp;#8220;I know,&amp;#8221; I reply each time. &amp;#8220;I&amp;#8217;m still figuring out how much of them are me, and how much of them are Sara.&amp;#8221; Who am I today, without the life I thought I&amp;#8217;d have?&lt;/p&gt;
&lt;p&gt;New York City has been a difficult place to be in. Instead, I have spent much of my time North, shuffling between Boston and Providence. The &amp;#8220;organized&amp;#8221; Boston communities are vastly divergent from The Scene that I am used to. I like the differences—I like that they exist, and that one place is different from another—even if I don&amp;#8217;t like all the specifics.&lt;/p&gt;
&lt;p&gt;In Boston, I attended the second &lt;a href="http://nepups.org/"&gt;NEPups.org&lt;/a&gt; puppy munch. I went with a friend and met a few gay pups and a kitty girl, and I spoke about queer masculinities and how uncomfortable I feel in the gay communities I&amp;#8217;ve tentatively explored. I have never been gay, and I still feel a twinge of discomfort &amp;#8220;admitting&amp;#8221; to bisexuality in such spaces.&lt;/p&gt;
&lt;p&gt;I have a growing connection to Providence. In large part, this is due to the people I&amp;#8217;m coming to think of as the sun girl and the metal boy. They are young (younger than I am), which for the first time in my life is a notable thing. They live in slow time and enjoy the physical world in ways that are not entirely new yet not entirely familiar to me. There is much of Sara—a goodness and comfort—in each of them.&lt;/p&gt;
&lt;p&gt;The metal boy in particular has been a quiet revelation for me. I find myself more unsure around him than I would have thought, as though I am younger, less experienced, more hesitant. I&amp;#8217;ve been sexual with other men before but only now, after being with him, can I wholly and without silent reservation answer &amp;#8220;Yes&amp;#8221; to the still often asked question, &amp;#8220;Are you really bi?&amp;#8221; The sun girl, for her part, is in many ways a pure blessing. She is magic and warmth and a grounding force that has helped me move forward.&lt;/p&gt;
&lt;p&gt;My trip to San Francisco these past five days proved useful but disappointing. It&amp;#8217;s now obvious to me that the plan I had conceived before I left Sydney and which I so steadfastly tried to make happen despite the financial and emotional burdens of losing my relationship with Sara will not actually work. I&amp;#8217;m thankful that I met with several other friends who have each generously offered support and crash space for my planned arrival time in late June. It may have perhaps been &lt;em&gt;destined&lt;/em&gt; for me to be alone (but not isolated) when I arrive in San Francisco; it&amp;#8217;s been almost a decade in the making for me by now.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been to San Francisco twice before this trip, but I&amp;#8217;ve never been so happy to leave it before. I am still determined to move there, but as I write this in my airplane seat somewhere over the landlocked middle of the continent, I find myself eagerly awaiting a return to Providence. I can&amp;#8217;t stay on the East coast, but I can&amp;#8217;t leave. Not yet, not when there is still so much for me to do here.&lt;/p&gt;
&lt;p&gt;My thoughts are consistently drawn to productive pursuits; &lt;a href="http://www.amazon.com/AdvancED-CSS-Joe-Lewis/dp/1430219327"&gt;my second &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; book&lt;/a&gt;, my sexuality projects (&lt;a href="http://KinkForAll.org"&gt;KinkForAll.org&lt;/a&gt; and &lt;a href="http://MaleSubmissionArt.com"&gt;MaleSubmissionArt.com&lt;/a&gt;). I feel strong in ways I&amp;#8217;ve never felt before: I bend the world. I change reality. &lt;strong&gt;I can.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But I&amp;#8217;m still so, &lt;em&gt;so&lt;/em&gt; sad, and so, &lt;em&gt;so&lt;/em&gt; pained. I don&amp;#8217;t &lt;a href="/blog/2009/03/12/now-its-all-the-little-things/"&gt;cry every day&lt;/a&gt; anymore, but I do feel overwhelmed by it. I suspect that, in part, Sara left me because I am so driven by the things I need to change rather than the things that work. Some parts of me want to reach a point where I&amp;#8217;m no longer fueled by things that way, but other parts of me doesn&amp;#8217;t. As one Bostonian friend fondly reminds me, &amp;#8220;All progress is the work of unreasonable men.&amp;#8221;&lt;/p&gt;
&lt;p&gt;I speak about KinkForAll so often everywhere I go that I&amp;#8217;m uncertain whether I&amp;#8217;ve latched onto it or if it has latched onto me. I fear for it like a father fears for a child growing too fast and yet I keep pushing it out from underneath my own auspice because I know it can&amp;#8217;t ever be what I want it to be without experience in the world. The weekend after I was in Boston, &lt;a href="http://kinkforall.pbworks.com/KinkForAllBoston"&gt;KinkForAll Boston&lt;/a&gt; was set into motion by the people I spoke with there and now I am determined to be a part of it.&lt;/p&gt;
&lt;p&gt;In the mean time, I am also thinking and becoming increasingly excited about &lt;a href="http://sex20con.com/2009-schedule/"&gt;the Sex 2.0 presentations I will give&lt;/a&gt; on May 9&lt;sup&gt;th&lt;/sup&gt;. In particular, I&amp;#8217;ll get to meet the likes of &lt;a href="http://sarahdopp.com/"&gt;Sarah Dopp&lt;/a&gt;, one of the &lt;a href="http://www.sarahdopp.com/blog/?p=514"&gt;inspirations for the Gender and Technology presentation&lt;/a&gt; that was accepted (and seems to be in increasingly high demand) at the Sex 2.0 conference. I&amp;#8217;m just learning to speak with the people I admire to that degree, and in a week and a half I&amp;#8217;m going to stand up and present &lt;a href="/blog/2009/01/22/gender-and-technology-at-ignitesydney-with-presentation-slides/"&gt;my own version&lt;/a&gt; of the very things they inspire me to be. I will feel like I am standing in front of the very giants whose shoulders I stood on when I was across the planet.&lt;/p&gt;
&lt;p&gt;So again, I ask myself, who am I? What is &lt;a href="http://maybemaimed.com/"&gt;my sexual submissiveness&lt;/a&gt; without &lt;a href="http://bloodylaughter.com/"&gt;the dominant presence that revived it&lt;/a&gt; when I had given it up those four long years ago? What is my career when I have achieved, for me, an &lt;a href="/blog/2008/07/21/how-web-designers-can-do-their-own-htmlcss/"&gt;unprecedented level of recognition&lt;/a&gt; after 8 long years of being in the workforce? What is my contribution to my own future, and to people like me who are still young children today?&lt;/p&gt;
&lt;p&gt;What kind of man am I if so much of the world I live in refuses to see manliness in what I am? Because today, having considered the possibility that I was perhaps a woman at earlier stages of my life, it turns out I am a man. And I am going to make the world know it is good to be the kind of man I am.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:63796</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/63796.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=63796"/>
    <title>Now it&amp;#8217;s all the little things</title>
    <published>2009-03-12T21:54:23Z</published>
    <updated>2009-03-12T21:54:23Z</updated>
    <category term="maybe maimed"/>
    <category term="romance &amp;amp;amp; relationships"/>
    <category term="personal"/>
    <category term="crosspost"/>
    <category term="depression &amp;amp;amp; melancholy"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2009/03/12/now-its-all-the-little-things/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2009/03/12/now-its-all-the-little-things/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Immediately after arriving in New York City, &lt;a href="/blog/2009/03/07/too-many-tears-my-first-morning-back-in-nyc/"&gt;I turned myself into a tornado of work and worry&lt;/a&gt; in order to make sure KinkForAll was the success I desperately needed it to be. To my indescribable relief and happiness, &lt;a href="http://maybemaimed.com/2009/03/10/kinkforall-new-york-city-rest-and-recovery-and-then-we-do-it-all-over-again/"&gt;KFANYC wasn&amp;#8217;t just a success, it smashed through even my wildest expectations&lt;/a&gt;, topping at 45 presentations with well over 100 participants physically present and countless others watching &lt;a href="http://kinkforall.pbwiki.com/KinkForAllNewYorkCityLive" title="The KFANYC &amp;#39;Live&amp;#39; page aggregated some of the online content from the day&amp;#39;s event."&gt;the online feeds&lt;/a&gt;. (I was so worried about presentation shortage, I prepared 4, but only ended up needing to present 1. Likewise, I originally thought we&amp;#8217;d top off at maybe 35–45 participants, and in the end one of our biggest problems was simply lack of physical space!)&lt;/p&gt;
&lt;p&gt;On that front, I&amp;#8217;m now looking at the amazing possibility of helping people in sexuality communities who have contacted me from Washington DC, Toronto, and San Francisco emulate the success of New York City&amp;#8217;s event in their own hometowns. But not yet…. Not &lt;em&gt;quite&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;As the unconference ended, &lt;a href="http://SaraEileen.com/"&gt;Sara&lt;/a&gt; and I were joined by a group of over 20 friends (and friendly acquaintances) for dinner at a nearby Asian restaurant. Despite my hunger (I only ate at the behest of my concerned friends during the day &amp;#8217;cause I was so busy), I didn&amp;#8217;t want to finish my meal; I knew that would be the end of dinner, and the day. Nevertheless, day turned to night and as Sara and I walked around the corner for a modicum of privacy, excitement gave way to sadness and &lt;a href="http://identi.ca/notice/2681305"&gt;we said (temporary) goodbyes in tears&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I retreated from the city then, headed towards Providence, Rhode Island to stay with close friends who generously offered me the opportunity to create a small sanctuary in their spare room. This has been helpful, and I can begin to feel myself recovering, but I&amp;#8217;m still having trouble grounding myself in the here and now or focusing on the new tasks at hand. For one thing, there are so many, and for another thing, they are so vastly different from what I&amp;#8217;ve just done that mentally changing gears so radically, so quickly, under so much pressure, is actually painful.&lt;/p&gt;
&lt;p&gt;When I moved my self and my life half way around the globe to Sydney last year, I felt optimistic about what I would find. Sadly, I &lt;em&gt;didn&amp;#8217;t&lt;/em&gt; find what I wanted. Now, having moved myself and my life all the way back across the planet and then some, I&amp;#8217;m determined to &lt;em&gt;make&lt;/em&gt; what I want—because it doesn&amp;#8217;t exist yet, and no one knows what it&amp;#8217;s going to look like…except me.&lt;/p&gt;
&lt;p&gt;My hosts, Emms and Zac, are nothing short of a godsend. They are literally a healing warmth of a magnitude I could not possibly express adequately in words. Unfortunately, shortly after arriving in their home, I fell ill. Of course, this is not at all a surprise considering my physiological history for exactly such mind-body connection.&lt;/p&gt;
&lt;p&gt;My attempts to focus on my writing (for my second and much more advanced web development book on &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; I&amp;#8217;m authoring; &lt;a href="/blog/2008/07/21/how-web-designers-can-do-their-own-htmlcss/"&gt;my first book was much more 101-level&lt;/a&gt;) have been only partially successful, but I&amp;#8217;m encouraged by this anyway. As Emms told me last night while cooking a pasta dinner for us all, &amp;#8220;Comfort yourself with the standards of the world,&amp;#8221; a piece of advice she wisely preceded with, &amp;#8220;Now&amp;#8217;s the time to focus on only the most important parts of your chapters.&amp;#8221; This, all while taking my hand every time my eyes unexpectedly overflow with the salt water I feel like I&amp;#8217;ve been storing up in them.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m a little…not annoyed…chagrined at the admission that yesterday was the first full day in more than 4 weeks that I didn&amp;#8217;t cry at all. Not only this, but earlier today while my hosts were at their day jobs and I mainlined enormous quantities of tea as though it were a blood transfusion, I couldn&amp;#8217;t stop myself from crawling backwards in time towards happier memories. I cried again, embarrassingly loudly since no one was home, and resigned to let my head rest for a while instead of forcing it further into failing attempts to create reusable patterns of &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; code for styling semantic markup.&lt;/p&gt;
&lt;p&gt;To help with the memories, I&amp;#8217;ve been playing &lt;cite&gt;MGMT&lt;/cite&gt;&amp;#8217;s &lt;cite&gt;Kids&lt;/cite&gt; on repeat for what must be an hour or more now. I first heard it on Australia Day (apparently Australia&amp;#8217;s almost-equivalent of America&amp;#8217;s Columbus Day), which Sara and I spent with &lt;a href="http://theengineermuses.com/"&gt;Janek&lt;/a&gt; and company at his house on a tropical, warm, rainy day in Sydney. The radio was playing all day but the only song I remember was this one because, somehow, it stood out like a spotlight. I remember laying on the couch in the living room with my head in Sara&amp;#8217;s lap, eyes closed, as she pet my head and I purred along with the kittens in the far corner of the room. The memory is emblazoned in my mind&amp;#8217;s eye as a vivid still frame.&lt;/p&gt;
&lt;p&gt;When Zac came home and gave me a hug to comfort my tears, he remarked on the song. &amp;#8220;It&amp;#8217;s always weird to hear this song,&amp;#8221; he said.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Why?&amp;#8221; I asked.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Because Emms and I went to college with them—the band.&amp;#8221;&lt;/p&gt;
&lt;p&gt;And now I have two memories.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:63590</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/63590.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=63590"/>
    <title>Too many tears: My first morning back in NYC</title>
    <published>2009-03-07T15:24:35Z</published>
    <updated>2009-03-07T15:33:19Z</updated>
    <category term="writing and blogging"/>
    <category term="maybe maimed"/>
    <category term="bipolar disorder &amp;amp;amp; moods"/>
    <category term="romance &amp;amp;amp; relationships"/>
    <category term="personal"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2009/03/07/too-many-tears-my-first-morning-back-in-nyc/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2009/03/07/too-many-tears-my-first-morning-back-in-nyc/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;A few minutes ago I awoke in a friend&amp;#8217;s bed in their apartment in Harlem. I wanted to do nothing but stay there and not get up. I feel like there is too much to take care of, way too much to handle.&lt;/p&gt;
&lt;p&gt;My flight from Sydney to New York City was less than good, better than terrible. I already knew I hated United Airlines, now I&amp;#8217;m just more committed never to flying with them again. More than that, I&amp;#8217;m frustrated that my flight was so dependent on choices Sara&amp;#8217;s family made for her without consideration for me. If little else, I&amp;#8217;m happy to be finally out of reach of &lt;a href="http://maybemaimed.com/2007/12/24/unwelcome-the-emotional-effects-of-social-injustice/" title="I never felt welcomed, included, or considered, by Sara&amp;#39;s family."&gt;their influence&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been weeks, literally, since I haven&amp;#8217;t cried at one point or another, usually multiple, in the day. I&amp;#8217;ve been falling asleep in either tears or unmatched stress and restlessness—each has benefits over the other. Last night was no different.&lt;/p&gt;
&lt;p&gt;Today I have errands to run for the &lt;a href="http://maybemaimed.com/2008/12/18/introducing-kinkforall-a-no-limits-gender-and-sexuality-unconference/"&gt;KinkForAll New York City&lt;/a&gt; event I&amp;#8217;m helping to run tomorrow. I&amp;#8217;m extremely proud of the work Sara and I have managed to accomplish on it not only for the first time ever in our lives but also literally from the other side of the planet.&lt;/p&gt;
&lt;p&gt;Simultaneously, I&amp;#8217;ve been chasing and feeling continually frustrated by failing to make significant-enough progress on writing my book on &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;. My &lt;a href="http://sanbeiji.com"&gt;co-author Joe&lt;/a&gt; has been fantastic, and one particular employee, &lt;a href="http://clayandres.blogspot.com"&gt;Clay&lt;/a&gt;, from the publisher has also been equally supportive. However, the rest of this project feels extremely precarious and that is endlessly aggravating.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s aggravating because it was a project I sincerely wanted to see done well, and have been working toward for a long time. I quit my day job something like 6 months ago now in order to focus on getting it accomplished successfully, but I am now further behind than I was then. Despite my best efforts, life kept throwing me curveballs to the point where I already know it&amp;#8217;s not going to be the book I wanted it to be. I&amp;#8217;m extremely angry at…everything…for that.&lt;/p&gt;
&lt;p&gt;As if that weren&amp;#8217;t enough, as many already know by now, Sara and I are no longer together, for reasons I&amp;#8217;d rather not discuss quite yet. As painful as this would be in general, this is even more painful when seen in light of the fact that it&amp;#8217;s one of the reasons my book has suffered. The book isn&amp;#8217;t some great money-maker for me, but rather an opportunity for professional exposure and recognition that I&amp;#8217;ve been working towards for 8 years—that&amp;#8217;s how long I&amp;#8217;ve been making money in the web development industry. To have that opportunity suffer pours salt into wounds that moving to Sydney in the first place had already re-opened and which the loss of this relationship is a 3&lt;sup&gt;rd&lt;/sup&gt; degree burn.&lt;/p&gt;
&lt;p&gt;All in all, I&amp;#8217;m struggling to keep professional commitments afloat, organizing a first-of-its-kind unconference for the sexuality communities in New York City, ending a 4-year relationship (with the person I&amp;#8217;m organizing the unconference with), and moving across the planet. All. At. Once.&lt;/p&gt;
&lt;p&gt;I want to change the channel off of this ridiculous soap opera, but can&amp;#8217;t. Instead, I keep playing everything in fast-forward in my head until I can again see a point somewhere in the hopefully not too distant future where everything I&amp;#8217;ve worked on is successful and I&amp;#8217;m peaceful once again. Please let that day be soon.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:63290</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/63290.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=63290"/>
    <title>Buy Web Development Books from SitePoint&amp;#8217;s 5-for-1 Sale and Donate to Bushfire Relief</title>
    <published>2009-02-10T13:06:41Z</published>
    <updated>2009-02-10T13:22:43Z</updated>
    <category term="writing and blogging"/>
    <category term="internet marketing"/>
    <category term="web design"/>
    <category term="branding &amp;amp;amp; identity"/>
    <category term="crosspost"/>
    <category term="news"/>
    <category term="maymay media"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2009/02/10/buy-web-development-books-from-sitepoints-5-for-1-sale-and-donate-to-bushfire-relief/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2009/02/10/buy-web-development-books-from-sitepoints-5-for-1-sale-and-donate-to-bushfire-relief/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;For those of you who don&amp;#8217;t already know, &lt;a href="http://www.sitepoint.com/articlelist/537/"&gt;I&amp;#8217;ve been a blogger over at SitePoint&lt;/a&gt; for a few months now. Today, I&amp;#8217;m even happier to be a participant in the SitePoint community because, for a limited time only, SitePoint is offering the sale of the century: &lt;strong&gt;&lt;a href="http://5for1.aws.sitepoint.com/" title="Purchase SitePoint books to donate to Victorian bushfire relief efforts."&gt;buy 5 SitePoint books for the price of 1&lt;/a&gt;&lt;/strong&gt;. Every last cent of the proceeds from the sale of these books will go towards relief efforts for the &lt;a href="http://www.abc.net.au/news/stories/2009/02/08/2485299.htm"&gt;recent Victorian bushfires&lt;/a&gt; that have claimed over 300 lives and are among the worst fire disasters on record.&lt;/p&gt;
&lt;p&gt;The books are full-color &lt;acronym title="Portable Document Format"&gt;PDF&lt;/acronym&gt; downloads, and include some really awesome titles. These are precisely the kinds of books you want as PDFs, too, since you can search through them and always keep them with you while you&amp;#8217;re coding and looking for inspiration or a reference (even when you&amp;#8217;re without Internet access). I couldn&amp;#8217;t help but pounce on this deal, and I&amp;#8217;m now the proud owner of the following books, which have all received some pretty great reviews:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/books/xml1/"&gt;No Nonsense &lt;acronym title="eXtensible Markup Language"&gt;XML&lt;/acronym&gt; Web Development With &lt;acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language"&gt;PHP&lt;/acronym&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/books/ajax1/"&gt;Build Your Own AJAX Web Applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/books/design1/"&gt;The Principles of Beautiful Web Design&lt;/a&gt; (on &lt;a href="http://www.heyraena.com/"&gt;Raena&lt;/a&gt;&amp;#8217;s recommendation)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/books/photoshop1/"&gt;The Photoshop Anthology: 101 Web Design Tips, Tricks &amp;#038; Techniques&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/books/jsdesign1/"&gt;The Art &amp;#038; Science Of JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In just 3.5 hours, SitePoint has managed to raise over $15,000 &lt;abbr title="Australian Dollars"&gt;AUD&lt;/abbr&gt;, &lt;a href="http://twitter.com/sentience/statuses/1195088041"&gt;according to employee Kevin Yank on Twitter&lt;/a&gt;. And that&amp;#8217;s just on this side of the world. All my North hemisphere friends were asleep when this was announced, but not to worry. SitePoint&amp;#8217;s sale will last until this Friday, so there&amp;#8217;s plenty of time to take advantage of it.&lt;/p&gt;
&lt;p&gt;Obviously, I think you should do so. Not only are you getting some really quality content and helping disaster victims at the same time, you&amp;#8217;re also sending a loud and clear message that companies whose humanity outshines their accounting are the ones you&amp;#8217;re going to support. I&amp;#8217;m thrilled to see that SitePoint is one of these &lt;em&gt;human&lt;/em&gt; companies, and ever more thrilled to be a part of it.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:62781</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/62781.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=62781"/>
    <title>clickjane.css: A CSS User Style Sheet to Help Detect and Avoid Clickjacking Attacks</title>
    <published>2008-12-29T10:31:09Z</published>
    <updated>2008-12-29T14:40:42Z</updated>
    <category term="css"/>
    <category term="security &amp;amp;amp; privacy"/>
    <category term="tech/computing"/>
    <category term="web design"/>
    <category term="programming"/>
    <category term="crosspost"/>
    <category term="maymay media"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/12/29/clickjanecss-a-css-user-style-sheet-to-help-detect-and-avoid-clickjacking-attacks/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/12/29/clickjanecss-a-css-user-style-sheet-to-help-detect-and-avoid-clickjacking-attacks/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Clickjacking"&gt;Clickjacking&lt;/a&gt; or, more formally, &lt;dfn&gt;user interface redressing&lt;/dfn&gt;, is a class of security vulnerabilities similar to phishing scams. The technique uses web standards to trick unsuspecting victims into performing actions they were not intending to.&lt;/p&gt;
&lt;p&gt;Clickjacking does not rely on bugs in any software. Instead, the technique is simply an abuse of the growing graphical capabilities that advanced web standards like &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; provide to web browsers. A good &lt;a href="http://www.grc.com/sn/sn-168.htm"&gt;introduction to clickjacking&lt;/a&gt; is provided by &lt;a href="//grc.com/"&gt;Steve Gibson&lt;/a&gt; and &lt;a href="http://leoville.com/"&gt;Leo Laporte&lt;/a&gt; on their &lt;a href="//twit.tv/sn"&gt;Security Now! podcast&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As far as I&amp;#8217;m aware, only &lt;a href="//mozilla.com/firefox/"&gt;Firefox&lt;/a&gt; when combined with the &lt;a href="//noscript.net/"&gt;NoScript&lt;/a&gt; &lt;a href="https://addons.mozilla.org/firefox/addon/722"&gt;add-on&lt;/a&gt; and Internet Explorer when combined with the &lt;a href="//guardedid.com/"&gt;GuardedID product&lt;/a&gt; provide any measure of protection against clickjacking attacks. To date no other browser can detect, alert, or otherwise help you to avoid or mitigate the risks of clickjacking attacks.&lt;/p&gt;
&lt;p&gt;That said, there&amp;#8217;s gotta be &lt;em&gt;something&lt;/em&gt; users of other browsers can do. Well, it may not be as much as what NoScript can do, but there is something: use a user style sheet to help expose common clickjacking attack attempts.&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;clickjane.css&lt;/code&gt; helps detect clickjacking attacks for all browsers&lt;/h2&gt;
&lt;p&gt;Until browser manufacturers provide built-in protections against clickjacking attacks in their software (which is arguably the best place for such logic in the first place), I&amp;#8217;ve started putting together &lt;a href="http://github.com/meitar/clickjane-css/"&gt;a user style sheet I&amp;#8217;m calling &lt;code&gt;clickjane.css&lt;/code&gt;&lt;/a&gt; that attempts to instantly reveal common clickjacking attempts. Since it&amp;#8217;s a &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; user style sheet, this approach should be cross-browser compatible so that users of any browser including Safari, Opera, and other browsers that don&amp;#8217;t have other means of protecting against clickjacking attacks can use it.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve only recently learned about this class of exploits and so I&amp;#8217;m not supremely well-informed on the topic. As a result, the &lt;code&gt;clickjane.css&lt;/code&gt; file is relatively sparse and currently only reveals what I&amp;#8217;m sure is a small set of clickjacking attmpts. However, as I research the topic further and learn more about the actual underlying &lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt; and &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; that clickjacking uses, I&amp;#8217;ll be updating the &lt;code&gt;clickjane.css&lt;/code&gt; code to reveal those attempts as well.&lt;/p&gt;
&lt;p&gt;Naturally, contributions and assistance in any form are most welcome! Learn more about &lt;code&gt;clickjane.css&lt;/code&gt; as well as how to use it at the &lt;a href="http://github.com/meitar/clickjane-css/wikis"&gt;Clickjane &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; Github wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Before and after &lt;code&gt;clickjane.css&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Here are two example screenshots of &lt;a href="http://www.planb-security.net/notclickjacking/iframetrick.html"&gt;a benign clickjacking demo&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Before:
&lt;div&gt;&lt;div class="wp-caption alignnone" style="width: 310px"&gt;&lt;a href="http://maymay.net/blog/wp-content/uploads/2008/12/before-clickjane.png"&gt;&lt;img src="http://maymay.net/blog/wp-content/uploads/2008/12/before-clickjane-300x283.png" alt="Screenshot of Safari before clickjane.css is used to expose clickjacking attempts." title="before-clickjane" width="300" height="283" class="size-medium wp-image-858" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Screenshot of Safari before clickjane.css is used to expose clickjacking attempts.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;After:
&lt;div&gt;&lt;div class="wp-caption alignnone" style="width: 310px"&gt;&lt;a href="http://maymay.net/blog/wp-content/uploads/2008/12/after-clickjane.png"&gt;&lt;img src="http://maymay.net/blog/wp-content/uploads/2008/12/after-clickjane-300x283.png" alt="Screenshot of Safari after clickjane.css is used to expose clickjacking attempts." title="after-clickjane" width="300" height="283" class="size-medium wp-image-859" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Screenshot of Safari after clickjane.css is used to expose clickjacking attempts.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Good habits you should get into to mitigate clickjacking risks&lt;/h2&gt;
&lt;p&gt;Here is a list of behaviors that you should make habitual while you browse the web. Engaging in these behaviors can dramatically reduce the likelihood that you will be victimized by a clickjacking attack.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explicitly log out of any service you have logged in to when you are done. That log-out button is there for a reason: use it!&lt;/li&gt;
&lt;li&gt;Avoid providing your browser with &amp;#8220;Auto-Complete&amp;#8221; information for critical sites, such as your bank.&lt;/li&gt;
&lt;li&gt;Make sure you are &lt;a href="http://www.adobe.com/support/security/advisories/apsa08-08.html"&gt;running Flash Player 10 or greater, which mitigates this vulnerability&lt;/a&gt; for Adobe Flash content.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;More resources to learn about clickjacking&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://hackademix.net/2008/10/26/more-clickjacking/"&gt;Hackademix.net - More clickjacking&lt;/a&gt; links to the &lt;a href="http://video.google.com/videoplay?docid=-5747622209791380934"&gt;OWASP presentation&lt;/a&gt;, the &lt;a href="http://www.sectheory.com/clickjacking.htm"&gt;white paper&lt;/a&gt;, and a blog post showing &lt;a href="http://sirdarckcat.blogspot.com/2008/10/about-css-attacks.html"&gt;several &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;-based exploits&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:62615</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/62615.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=62615"/>
    <title>Introducing KinkForAll: A no-limits gender and sexuality unconference</title>
    <published>2008-12-18T04:07:56Z</published>
    <updated>2008-12-18T04:08:28Z</updated>
    <content type="html">&lt;p&gt;&lt;strong&gt;This is crossposted from one of my other blogs.&lt;/strong&gt; &lt;a href="http://maybemaimed.com/2008/12/18/introducing-kinkforall-a-no-limits-gender-and-sexuality-unconference/"&gt;Read the full post&lt;/a&gt; for more context.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As if I didn&amp;#8217;t have enough &lt;a href="/2008/11/19/malesubmissionartcom-or-why-i-am-crowdsourcing-my-own-pornography/"&gt;projects&lt;/a&gt; &lt;a href="/2008/06/21/call-for-participation-hyperfiction-and-hypertextual-porn/"&gt;going&lt;/a&gt; right now, while here in Sydney, &lt;a href="//bloodylaughter.com/"&gt;Eileen&lt;/a&gt; and I had an idea for a social and educational event that will promote positive ideals of sexuality from and to many communities and organizations. The idea is called &lt;a href="//KinkForAll.org/"&gt;KinkForAll&lt;/a&gt;, and I need your help to make the first KinkForAll event a reality this March. Below is the 411 on KinkForAll as well as links for where to learn more.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Most of all, I need your help to spread the word that KinkForAll event exists. To that end, please copy the flyer text below and post it on your blog(s), send it to any mailing lists you belong to, talk about it to your friends, and generally help get the word out. For this hugely beneficial movement to succeed, it needs enthusiastic participants on the ground—and that&amp;#8217;s you!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here&amp;#8217;s the flyer text to copy:&lt;/p&gt;&lt;br /&gt;&lt;blockquote title="The inaugural KinkForAll email flyer."&gt;&lt;p&gt;&lt;br /&gt;PLEASE COPY AND CROSSPOST THIS MESSAGE FREELY.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you have already heard about KinkForAll through the grapevine, then please consider this email a reminder. If you haven&amp;#8217;t, then please take a minute to scan this message. You&amp;#8217;re receiving this message because someone trusts you to read it with an open mind. Smile! :)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Vitals&lt;br /&gt;&lt;br /&gt;======&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What: A no-limits sex-positive gender and sexuality unconference.&lt;br /&gt;&lt;br /&gt;Why: To inspire a creative, interactive and open environment where everyone feels comfortable talking, learning, and being inspired by all kinds of sexuality.&lt;br /&gt;&lt;br /&gt;When: March, 2009 (exact date yet to be determined)&lt;br /&gt;&lt;br /&gt;Where: NYC (We&amp;#8217;re &lt;a href="http://groups.google.com/group/kinkforall/browse_thread/thread/e276379e4f92c9cd#msg_50c9fdf7b01d64e7"&gt;still looking for a venue&lt;/a&gt;! Can you help? See &amp;#8216;Get Involved,&amp;#8217; below!)&lt;br /&gt;&lt;br /&gt;Who: Everyone&lt;br /&gt;&lt;br /&gt;How much: Free (as in beer as well as freedom)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Details&lt;br /&gt;&lt;br /&gt;=======&lt;/p&gt;&lt;br /&gt;&lt;p&gt;KinkForAll is an ad-hoc gathering born from the desire for people of the kink, queer, sex-positive and related communities to share and learn in an open environment. It is an intense event with discussions, presentations, and interaction from all participants.  (It is inspired by the BarCamp community.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;ANYONE WITH SOMETHING TO CONTRIBUTE OR WITH THE DESIRE TO LEARN IS WELCOME AND INVITED TO JOIN. When you attend, be prepared to share with others. When you leave, be prepared to share it with the world.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A KinkForAll is a special kind of gathering because there are no spectators, only participants. Attendees must give a talk or a presentation, help with one, or otherwise volunteer/contribute in some way to support the event. This is called sharing and we like it. All presentations are scheduled the day they happen—there are no pre-scheduled presentations or keynote addresses. The people present at the event will select the presentations they want to see.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Anyone can present, on any topic related to sexuality. You do not necessarily have to teach a new skill or idea. You might share an experience, review a product, or read a poem. The goal is to start a discussion, make connections, and exchange knowledge. Presentations promoting specific commercial products or companies are discouraged.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Learn more about what to expect at&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kinkforall.pbwiki.com/WhatToExpect"&gt;http://kinkforall.pbwiki.com/WhatToExpect&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Learn more about the event guidelines at&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kinkforall.pbwiki.com/TheRulesOfKinkForAll"&gt;http://kinkforall.pbwiki.com/TheRulesOfKinkForAll&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Get Involved&lt;br /&gt;&lt;br /&gt;============&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We need your help in spreading the word. Please help by participating. Here&amp;#8217;s how:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1. Get excited by reading the ideas on &lt;a href="http://kinkforall.pbwiki.com/KinkForAllNewYorkCity"&gt;http://kinkforall.pbwiki.com/KinkForAllNewYorkCity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Add your name or handle to the list of participants&lt;br /&gt;&lt;br /&gt;3. Join the mailing list and introduce yourself by emailing &lt;a href="mailto:kinkforall@googlegroups.com"&gt;kinkforall@googlegroups.com&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you have access to a venue, or know someone who has access to a venue, please email the &lt;a href="mailto:kinkforall@googlegroups.com"&gt;kinkforall@googlegroups.com&lt;/a&gt; mailing list with that information.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Still have questions? Read the Frequently Asked Questions at&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kinkforall.pbwiki.com/FrequentlyAskedQuestions"&gt;http://kinkforall.pbwiki.com/FrequentlyAskedQuestions&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;or email &lt;a href="mailto:kinkforall@googlegroups.com"&gt;kinkforall@googlegroups.com&lt;/a&gt; for more details.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;KinkForAll Online&lt;br /&gt;&lt;br /&gt;=================&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Participate online before the event at your favorite social networking web site.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Homepage: &lt;a href="http://KinkForAll.org/"&gt;http://KinkForAll.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google: &lt;a href="http://groups.google.com/group/kinkforall"&gt;http://groups.google.com/group/kinkforall&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Twitter: &lt;a href="http://twitter.com/KinkForAll"&gt;http://twitter.com/KinkForAll&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Identica: &lt;a href="http://identi.ca/kinkforall"&gt;http://identi.ca/kinkforall&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Facebook: &lt;a href="http://www.facebook.com/pages/KinkForAll/40066342762"&gt;http://www.facebook.com/pages/KinkForAll/40066342762&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;All primary organizational efforts are being coordinated via the mailing list. Join for free and help turn ideas into realities!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/kinkforall"&gt;http://groups.google.com/group/kinkforall&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:62211</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/62211.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=62211"/>
    <title>Why CSS needs delegation capabilities and not &amp;#8220;variables&amp;#8221;</title>
    <published>2008-12-14T07:55:07Z</published>
    <updated>2008-12-15T16:40:04Z</updated>
    <category term="css"/>
    <category term="tech/computing"/>
    <category term="javascript"/>
    <category term="web design"/>
    <category term="programming"/>
    <category term="crosspost"/>
    <category term="web standards"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/12/14/why-css-needs-delegation-capabilities-and-not-variables/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/12/14/why-css-needs-delegation-capabilities-and-not-variables/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;It&amp;#8217;s been too long since I joined the fun, if amazingly heated, debates over the direction that Web standards are moving in. Recently, given the &amp;#8220;free&amp;#8221; time to do so, I decided to dive head first into what is (sadly) an almost 14 year old debate. The result is this blog post, which is mostly a response to Bert Bos&amp;#8217;s essay &lt;cite&gt;&lt;a href="http://www.w3.org/People/Bos/CSS-variables"&gt;Why &amp;#8220;variables&amp;#8221; in &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; are harmful&lt;/a&gt;&lt;/cite&gt; and Matt Wilcox&amp;#8217;s opposing response to that essay, &lt;cite&gt;&lt;a href="http://mattwilcox.net/archive/entry/id/991/"&gt;Why &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; needs to borrow from programming languages&lt;/a&gt;&lt;/cite&gt;. Their articles are each worthy of a read, possibly before this one.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s &lt;strong&gt;the summary&lt;/strong&gt; of my argument.&lt;/p&gt;
&lt;p class="summary"&gt;Adding many &amp;#8220;programmatic&amp;#8221; features to the &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; language such as variables, macros, or flow control &lt;em&gt;is&lt;/em&gt; a mistake. However, &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;&amp;#8217;s failure to simply encode visual &lt;em&gt;relationships&lt;/em&gt; (instead of merely typographic properties)&amp;mdash;a severe deficiency in the core language itself&amp;mdash;requires the addition of delegation features. With the additional capability to reference an arbitrary element&amp;#8217;s computed value regardless of its hierarchical context, &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; will be more accessible to both amateur and professional web designers, more capable, and will more forcefully promote the semantic Web and its ideals.&lt;/p&gt;
&lt;h3&gt;In this corner: &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; variables are harmful&lt;/h3&gt;
&lt;p&gt;Bert does a great job of summarizing the conclusion of his argument himself. In his essay, Bert says:&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/People/Bos/CSS-variables"&gt;&lt;p&gt;Adding any form of macros or additional scopes and indirections, including symbolic constants, is not just redundant, but changes &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; in ways that make it unsuitable for its intended audience. Given that there is currently no alternative to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;, these things must not be added.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;As we all know, one of the wonderful things about &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; is that the core language itself is remarkably simple. (What&amp;#8217;s &lt;em&gt;not&lt;/em&gt; simple is the spectacular way browser manufacturers have destroyed everyone&amp;#8217;s hope that implementing &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;-based designs in the real world will ever be easy, but that&amp;#8217;s a whole different can of worms.) Fundamentally, &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;&amp;#8217;s syntax can be explained with a mere three major components: property/value pairs, declaration blocks, and rule sets.&lt;/p&gt;
&lt;p&gt;What this means is that &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; &lt;em&gt;as a language&lt;/em&gt; is stupidly easy to learn. I think everyone would agree that it&amp;#8217;s certainly easier to learn than, say, JavaScript or &lt;a href="//en.wikipedia.org/wiki/Extensible_Stylesheet_Language"&gt;&lt;acronym title="eXtensible Stylesheet Language"&gt;XSL&lt;/acronym&gt;&lt;/a&gt;. Now, that&amp;#8217;s important because, without putting too fine a point on it, Bert mentions multiple times that &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;&amp;#8217;s &amp;#8220;intended audience&amp;#8221; are the diverse and likely relatively technically ignorant content authors that are responsible for the overwhelming majority of web pages on the public Internet today.&lt;/p&gt;
&lt;p&gt;He makes the very good point that &lt;q cite="http://www.w3.org/People/Bos/CSS-variables"&gt;The value of the semantic Web isn&amp;#8217;t defined by how well structured the best documents are, but by how well structured the vast majority of documents&lt;/q&gt; are. In other words, &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; needs to remain instantly useable &lt;em&gt;and reusable&lt;/em&gt; to these untrained, amateur web content publishers for the benefits of self-describing documents (i.e., the semantic Web) to see mass adoption.&lt;/p&gt;
&lt;p&gt;To wit:&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/People/Bos/CSS-variables"&gt;&lt;p&gt;reusing other people&amp;#8217;s style sheets is more difficult if those style sheets contain user-defined names. Class names are an example. Their names may suggest why the author created them (assuming they are in a language you understand), but typically you will have to look at the document to see where they occur and why. Symbolic constants make that problem worse.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;And, later:&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/People/Bos/CSS-variables"&gt;&lt;p&gt;For many people, style sheets with constants will thus simply not be usable. It is too difficult to look in two places at once, the place where a value is used and the place where it is defined, if you don&amp;#8217;t know why the rule is split in this way. Many people are confused by indirection anyway and adding an extra one, in addition to the element and class names, has the same effect as obfuscating the style sheet.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Whether or not you believe Bert Bos is underestimating the average web designer, it&amp;#8217;s pretty clear that these are really good points. Nobody wants &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; to be obfuscated, hard to learn, or hard to reuse. That&amp;#8217;d just be crazy talk.&lt;/p&gt;
&lt;h3&gt;In the other corner: &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; variables are a real-world requirement&lt;/h3&gt;
&lt;p&gt;The more features you add to an application, a programming language, or indeed any software, the more difficult it becomes to grok it. As the Python people would say, the larger a language gets the more difficult it is to hold all of it in your head. Nevertheless, adding &amp;#8220;features&amp;#8221; is sometimes the only way to add &lt;em&gt;capabilities&lt;/em&gt;, and I don&amp;#8217;t think anyone in their right mind would argue that, once written, software should never change. (That&amp;#8217;d just be crazy talk, too.)&lt;/p&gt;
&lt;p&gt;In his opposing arguments, Matt Wilcox recognizes this when he says, &lt;q cite="http://mattwilcox.net/archive/entry/id/991/"&gt;Yes, the syntax should be simple, but the capabilities of &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; should not.&lt;/q&gt; What he&amp;#8217;s alluding to without verbalizing it is the balance between adding necessary capabilities without unnecessarily growing the &amp;#8220;size of the language.&amp;#8221;&lt;/p&gt;
&lt;p&gt;However, Matt says that modern web design &lt;em&gt;methodologies&lt;/em&gt; (e.g., separation of concerns between structure, presentation, and behavior) dictate that &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; needs more capabilities than it currently has:&lt;/p&gt;
&lt;blockquote cite="http://mattwilcox.net/archive/entry/id/991/"&gt;&lt;p&gt;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; lacks capabilities to allow truly flexible design, requiring layer upon layer of ‘tricks’ to accomplish certain objectives, requiring content to be structured ‘just so’ to achieve a display objective, or in the case of some designs proving instead to be completely incapable.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;CSS’s positioning is a cludge. It’s a cludge because you can only position relative to the last positioned parent container. Well, that limitation in itself dictates that all positioning relies upon how the content is structured. And that means the presentation and the content are not truly separable.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To align &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;&amp;#8217;s capabilities with the requirements of real-world web design objectives, he says, &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; needs to be capable of describing relationships between semantically and structurally arbitrary but visually related elements.&lt;/p&gt;
&lt;blockquote cite="http://mattwilcox.net/archive/entry/id/991/"&gt;&lt;p&gt;Visual design is fundamentally about relationships between elements. For all of the artistic flourishes and creativity, it’s about relationships. ‘That yellow’ only grabs your attention because of its contrasting relationship with ‘that blue’. ‘This heading’ only works as a heading because of it’s exaggerated relationship to the size of the body text. […] &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; has no clue about relationships, period. And that’s why &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; as it stands right now, is not good enough. That’s why &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; without variables (true variables), without basic logic, without maths, can never be as flexible as we need it to be.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is what web designers have been complaining about for (what feels like hundreds of) years. The fact that &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; has no capability to describe &lt;em&gt;presentational relationships&lt;/em&gt; between elements in addition to directly describing an individual element&amp;#8217;s presentational properties is a gaping hole that sorely degrades its ability to be a media-agnostic styling language. Every single web designer I&amp;#8217;ve worked with has gasped at this omission, and though at first I didn&amp;#8217;t understand why, the more I understood the principles behind graphic design the more I came to realize how fundamentally problematic this omission really is.&lt;/p&gt;
&lt;h3&gt;Adding delegation makes &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; &lt;em&gt;easier&lt;/em&gt; for designers&lt;/h3&gt;
&lt;p&gt;As Matt eloquently stated, design is all about relationships. Good web designers create designs by constructing visual elements that have strong, often exacting relationships with other visual elements. There are many names and examples for this: visual language, visual hierarchy, the golden ratio, the grid, visual balance, the typographer&amp;#8217;s scale, and so on.&lt;/p&gt;
&lt;p&gt;What happens when the designer tries to define &lt;em&gt;a relationship&lt;/em&gt; between elements? &amp;#8220;How do I say that the whitespace between element A and element B should always be the same? How do I define element A&amp;#8217;s height as half of element B&amp;#8217;s?&amp;#8221; These definitions, which are natural and necessary to the way designers work in both their mind and their mediums, are impossible to encode in &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;.&lt;/p&gt;
&lt;p&gt;The closest you can get is declaring the same values to each element&amp;#8217;s properties, not describing the relationship itself. This suffices only so long as these values are known ahead of time and are the same as one another, which severely limits the design possibilities we are capable of (without resorting to what Matt calls &amp;#8220;tricks&amp;#8221;). &lt;em&gt;That&amp;#8217;s&lt;/em&gt; why achieving simple visual effects are actually very complex and so, sadly, &lt;em&gt;that&amp;#8217;s&lt;/em&gt; where you&amp;#8217;ll find the majority of indirection and obfuscation in &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; today. (I&amp;#8217;m looking at you, &lt;a href="http://www.alistapart.com/articles/fauxcolumns/"&gt;faux columns&lt;/a&gt;.)&lt;/p&gt;
&lt;h3&gt;So who wins?&lt;/h3&gt;
&lt;p&gt;Both Bert Bos and Matt Wilcox have made some great points. Bert rightfully wishes to keep &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; lean and simple, even at the expense of some arguably beneficial styling power. Matt, on the other hand, argues that our needs as web designers have evolved faster than the technology to the point where &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; is &lt;em&gt;too&lt;/em&gt; limited, fundamentally so.&lt;/p&gt;
&lt;p&gt;The truth is, they&amp;#8217;re both right. And they&amp;#8217;re both wrong. Or rather, they are each taking a position that is too extreme. Bert&amp;#8217;s absolutely correct when says that many of these proposed extensions are redundant and harmful, and yet Matt&amp;#8217;s also correct that &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; lacks some fundamental capabilities that designers &lt;em&gt;expect&lt;/em&gt; to be present.&lt;/p&gt;
&lt;p&gt;Bert says that the &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; capabilities everyone&amp;#8217;s asking for can be implemented using techniques that don&amp;#8217;t rely on &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; whatsoever. These techniques, he says, make things like true &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; variables &amp;#8220;redundant.&amp;#8221;&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/People/Bos/CSS-variables"&gt;&lt;p&gt;There are examples of &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; with constants to satisfy all styles of programming, e.g.: &lt;a href="http://davidwalsh.name/css-variables-php-dynamic"&gt;David Walsh&lt;/a&gt; (in &lt;acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language"&gt;PHP&lt;/acronym&gt;), &lt;a href="http://sperling.com/examples/pcss/"&gt;Tedd Sperling&lt;/a&gt; (in &lt;acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language"&gt;PHP&lt;/acronym&gt;), &lt;a href="http://www.digital-web.com/articles/generating_dynamic_css_with_php/"&gt;Digital Web Magazine&lt;/a&gt; (in &lt;acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language"&gt;PHP&lt;/acronym&gt;), &lt;a href="http://ecoconsulting.co.uk/training/css_includes.shtml"&gt;Eco Consulting&lt;/a&gt; (in &lt;acronym title="Server Side Include"&gt;SSI&lt;/acronym&gt;), and &lt;a href="http://icant.co.uk/articles/cssconstants/"&gt;Christian Heilmann&lt;/a&gt; (&lt;acronym title="Server Side Include"&gt;SSI&lt;/acronym&gt; and &lt;acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language"&gt;PHP&lt;/acronym&gt;).&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Quite simply, he&amp;#8217;s correct in stating that programmatic features need not be added to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; proper to achieve desired results, but he&amp;#8217;s incorrect in his apparent thinking that designers will be able to use these other tools to leverage &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;. Take, for instance, the probably more familiar (though not linked above) notion of using JavaScript to manipulate &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; values.&lt;/p&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;var x = document.getElementById('SideBar'); // get #SideBar element
var y = document.getElementById('MainColumn'); // get #MainColumn
var z = document.defaultView.getComputedStyle(y, '').getPropertyValue('height'); // get computed height of #MainColumn
x.style.height = ( parseInt(z) / 2 ) + 'px'; // set #SideBar's height 1/2 of #MainColumn's&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is an example of programmatic code that uses variables and expressions. It sets the element with the ID of &lt;code&gt;SideBar&lt;/code&gt; to half the pixel height of the element with the ID of &lt;code&gt;MainColumn&lt;/code&gt;. It does this by obtaining the &lt;code&gt;MainColumn&lt;/code&gt;&amp;#8217;s height (at the time this code runs) and saving it in a variable, then performs some trivial math to half the value and use the result as the pixel height of the &lt;code&gt;SideBar&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Doing this is currently impossible with &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; alone, yet it&amp;#8217;s something that clearly belongs with whatever other &amp;#8220;presentational&amp;#8221; code exists and not in &amp;#8220;programmatic&amp;#8221; scripts that would otherwise be charged with defining &amp;#8220;functionality.&amp;#8221; As Matt states, using JavaScript to &amp;#8220;script&amp;#8221; solutions to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;&amp;#8217;s shortcomings like this is not an acceptable answer.&lt;/p&gt;
&lt;blockquote cite="http://mattwilcox.net/archive/entry/id/991/"&gt;&lt;p&gt;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; doesn’t have [basic logic or maths]. Nor is it the job of JavaScript to make up for this lack of abilities. JavaScript is about interaction behaviour, and what we are talking about here is pure display logic. Not interaction logic.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Moreover, the &lt;em&gt;place&lt;/em&gt; designers expect to put code like this is, of course, into a &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; style sheet. The &lt;em&gt;way&lt;/em&gt; designers expect to put code like this into &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; is by adding delegation features. Requiring designers to learn JavaScript (or any other programming language) to encode such design relationships is nothing short of ridiculous. In what world is that easier for untrained laymen to understand than &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;?&lt;/p&gt;
&lt;h3&gt;Adding delegation to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; is worth the effort&lt;/h3&gt;
&lt;p&gt;One of Bert&amp;#8217;s arguments against such additions to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; is that implementations would become harder to create, and that we&amp;#8217;ll (almost certainly) see more bugs.&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/People/Bos/CSS-variables"&gt;&lt;p&gt;extending &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; makes implementing more difficult and programs bigger, which leads to fewer implementations and more bugs. That has to be balanced against the usefulness of the extension.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Although I do agree with his statement that an extension&amp;#8217;s usefulness has to be balanced against its potential costs, I think something so fundamental to design methodology as delegation greatly overcompensates for the cost of such implementation efforts. Moreover, if I understand Bert correctly and as he also discusses, the majority of implementations that would need to implement such delegation already have relatively complex internal structures to make the implementation effort somewhat easier:&lt;/p&gt;
&lt;blockquote cite="http://www.w3.org/People/Bos/CSS-variables"&gt;&lt;p&gt;There is no scoping [in proposals that only define &lt;em&gt;global&lt;/em&gt; constants]. That means that an implementation needs a symbol table, but no stack. A stack would require a little bit more memory, but mostly it would make implementations more complex. (Although every programmer has, one hopes, learnt to program a symbol table with lexical scope during his training.) Constants in &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; are thus easier than, e.g., &lt;a href="http://www.w3.org/TR/xml-names/"&gt;&lt;acronym title="eXtensible Markup Language"&gt;XML&lt;/acronym&gt; Namespaces,&lt;/a&gt; which &lt;em&gt;are&lt;/em&gt; lexically scoped.&lt;/p&gt;
&lt;p&gt;It is different for those &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; implementations that provide a &lt;a href="http://www.w3.org/TR/DOM-Level-2-Style/"&gt;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; Object Model&lt;/a&gt; (an &lt;acronym title="Application Programming Interface"&gt;API&lt;/acronym&gt; for manipulating a style sheet in memory). Those implementations &lt;em&gt;do&lt;/em&gt; need to keep track of scope in some way, because adding or removing a line of the style sheet can make a previously redundant definition become meaningful.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In order to use JavaScript to solve many of the shortcomings of &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;, as &lt;em&gt;huge&lt;/em&gt; numbers of professional web developers do routinely, we use the very &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; Object Model whose prior implementation already exists for us to build upon.&lt;/p&gt;
&lt;h3&gt;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; delegation doesn&amp;#8217;t grow the size of the language&lt;/h3&gt;
&lt;p&gt;For the sake of argument, let&amp;#8217;s simplify our requirement somewhat so that our somewhat contrived example of design intent is to &lt;em&gt;create a relationship&lt;/em&gt; between the &lt;code&gt;MainColumn&lt;/code&gt; and the &lt;code&gt;SideBar&lt;/code&gt; elements such that they are of equal height. This is more informally known as &amp;#8220;making columns.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what a natural, hypothetical snippet of &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; would look like if the language supported delegation features such that it could encode visual relationships.&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;#SideBar { height: #MainColumn; }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This code theoretically says almost the exact same thing as the JavaScript shown earlier (save for the division, of course); it takes the computed value of the &lt;code&gt;MainColumn&lt;/code&gt; element&amp;#8217;s height property and applies that value to the &lt;code&gt;SideBar&lt;/code&gt; element&amp;#8217;s height property. In other words, &amp;#8220;The SideBar&amp;#8217;s (element B&amp;#8217;s) height is always the same as the MainColumn&amp;#8217;s (element A&amp;#8217;s).&amp;#8221; (Of course, this is a parse error in reality today.)&lt;/p&gt;
&lt;p&gt;This extremely trivial example has some remarkably far-reaching implications, and yet there is really nothing radical about its syntax. Making this a reality significantly expands the capabilities of &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; without dramatically increasing the size of the language. This capability would not only &lt;a href="http://mattwilcox.net/archive/entry/id/1030/" title="Why you should not use display:table; for layout."&gt;beat the pants off&lt;/a&gt; &amp;#8220;&lt;a href="http://www.sitepoint.com/blogs/2008/10/22/everything-you-know-about-css-is-wrong/" title="SitePoint&amp;#39;s featuring articles and books about browser support for this."&gt;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; tables&lt;/a&gt;,&amp;#8221; it also potentially obsoletes the arguably &lt;a href="http://ejohn.org/blog/css3-template-layout/" title="Just because John Resig likes it doesn&amp;#39;t mean it&amp;#39;s good."&gt;misguided efforts of the &lt;acronym title="Cascading Stlye Sheets level 3"&gt;CSS3&lt;/acronym&gt; Advanced Layout&lt;/a&gt; and Grid Positioning modules, too.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve long since abandoned &lt;code&gt;table&lt;/code&gt; layouts because they force us to use presentational markup. That&amp;#8217;s still what &amp;#8220;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; tables&amp;#8221; force us to do, too. In other words, with &lt;code&gt;display: table&lt;/code&gt;, the &lt;code&gt;SideBar&lt;/code&gt; needs to be a child of the &lt;code&gt;MainColumn&lt;/code&gt; element or, maybe worse and more likely, a child of a semantically meaningless wrapper element.&lt;/p&gt;
&lt;p&gt;&lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; positioning was introduced with the promise of freeing us from source-order-dependent styling, without which there is no hope of efficiently abstracting presentation away from structure. Moreover, &lt;strong&gt;abstracting presentation away from structure is the single most important prerequisite needed to improve document reusability and strengthen the semantic Web&lt;/strong&gt;. Absolute positioning works, but limitations elsewhere in &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; mean its use is problematic for many designs, so in practice it doesn&amp;#8217;t gain widespread adoption.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a theoretical solution to a two-column and a footer layout using &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; delegation with this semantic HTML:&lt;/p&gt;
&lt;pre&gt;&lt;code class="html"&gt;&amp;lt;body&amp;gt;
    &amp;lt;div id="MainColumn"&amp;gt;I'm the main column.&amp;lt;/div&amp;gt;
    &amp;lt;div id="SideBar"&amp;gt;I'm the right-hand sidebar.&amp;lt;/div&amp;gt;
    &amp;lt;div id="Legalese"&amp;gt;No one will read me.&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; would look extremely familiar, possibly like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;#MainColumn { margin: 0 25% 1em 0; float: left; }
#SideBar { width: 25%; min-height: #MainColumn; }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using the same &lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt;, the same solution using the &lt;acronym title="Cascading Stlye Sheets level 3"&gt;CSS3&lt;/acronym&gt; Advanced Layout module would look something more like this, although to be frank I&amp;#8217;m not certain I fully understand this syntax even after staring at it for months:&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;body {
    display: "a  b"
             ".  ." /1em
             "c  c"
             75% 25%
}
#MainColumn { position: a; }
#SideBar { position: b; }
#Legalese { position: c; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Not only does there seem to me to be far more indirection in this method than there would be using &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; delegation, there is also an enormous increase to the size of the &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; language: a new (ASCII-art?!) value to the display property whose syntax is clunky at best. A similar story can be &lt;a href="http://ajaxian.com/archives/w3c-css-grid-positioning" title="Ajaxian reports on a rumor that Internet Explorer 8 will add support for Grid Positioning and shows what that might look like in code."&gt;said of the &lt;acronym title="Cascading Stlye Sheets level 3"&gt;CSS3&lt;/acronym&gt; Grid Positioning module&lt;/a&gt;, which does lots more than just add a new (already complex) &lt;code&gt;gr&lt;/code&gt; &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; unit.&lt;/p&gt;
&lt;p&gt;The upshot is that the Advanced Layout and the Grid Positioning modules are doing &lt;em&gt;some&lt;/em&gt; of the right things in &lt;em&gt;many&lt;/em&gt; of the wrong ways. Both those modules add unnecessary complexity to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; without giving designers a natural way to say what they mean. They do more to introduce obfuscation and indirection than simple delegation would, and they aren&amp;#8217;t as broadly capable. Both of them try to solve a specific problem instead of dealing with fundamental deficiencies in the &lt;em&gt;toolset&lt;/em&gt; designer&amp;#8217;s have to work with.&lt;/p&gt;
&lt;h3&gt;Designers want relationships via delegation, not variables&lt;/h3&gt;
&lt;p&gt;Adding delegation such as that I&amp;#8217;ve just shown is a natural, necessary addition to &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; because it is how designers create visual components&amp;mdash;such as grids&amp;mdash;in their designs. Variables (and constants, and macros, etc.), which simply reuse and modify pre-defined statements aren&amp;#8217;t what designers care about. Adding them &lt;em&gt;will&lt;/em&gt; bloat &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; without adding useful functionality.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Okay,&amp;#8221; you may be saying to yourself, &amp;#8220;but delegation is itself a kind of variable, isn&amp;#8217;t it?&amp;#8221; Technically yes, however adding delegation resolves the core deficiency in the &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; language that designers need to use every day. Yes, it&amp;#8217;s technically a form of variable, but that&amp;#8217;s not how designers think of it. To say that one element&amp;#8217;s visual properties is like another makes a variable only by creating a logical and visually appropriate mapping from the first element&amp;#8217;s property to the second independent of markup, thereby avoiding indirection in the form of a variable name or other unfamiliar symbol.&lt;/p&gt;
&lt;p&gt;Delegation like this doesn&amp;#8217;t require the addition of anything other than what already exists in &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;. Class names and ID values are identifiers whose indirection people &lt;em&gt;already&lt;/em&gt; have to deal with. Using them for delegation (to reference another element&amp;#8217;s &lt;em&gt;style&lt;/em&gt;) doesn&amp;#8217;t increase the cognitive load any more than using them to reference &lt;em&gt;&lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt; elements&lt;/em&gt; does. Though untested, the cognitive load might actually be even less since the &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; delegation&amp;#8217;s references could be in the same (style sheet) file.&lt;/p&gt;
&lt;p&gt;Moreover, delegation will increase the likelihood of document reusability by enabling style sheets to be more self-describing, more self-referential, in a similar way as good markup is. It satisfies a very fundamental need that designers have to define graphical relationships between elements. At the same time, it does so in a way that is natural to both their way of thinking and beneficial to the separation of concerns principle on which the &amp;#8220;web stack&amp;#8221; (the trifecta of &lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt;, &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt;, and JavaScript) is based.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:61068</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/61068.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=61068"/>
    <title>One Minute Mac Tip: Create an encrypted disk image to store confidential files</title>
    <published>2008-10-13T06:33:20Z</published>
    <updated>2008-10-13T06:33:20Z</updated>
    <category term="security &amp;amp;amp; privacy"/>
    <category term="howto"/>
    <category term="tech/computing"/>
    <category term="mac os x"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/10/13/one-minute-mac-tip-create-an-encrypted-disk-image-to-store-confidential-files/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/10/13/one-minute-mac-tip-create-an-encrypted-disk-image-to-store-confidential-files/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Nary a day goes by when I don&amp;#8217;t use my computer for some &lt;em&gt;extremely&lt;/em&gt; personal stuff. I would consider it a &lt;a href="http://www.catb.org/jargon/html/B/Bad-Thing.html"&gt;Very Bad Thing&lt;/a&gt; if some of this information (my bank account details or private &lt;acronym title="Secure SHell"&gt;SSH&lt;/acronym&gt; keys, for instance) fell out of my control.&lt;/p&gt;
&lt;p&gt;Everyone has sensitive files that they keep on their computer and, fortunately for Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X Users, Apple has made it ridiculously easy to create a cryptographically secure containers for such files. You can think of a container like this, which is just a standard Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X disk image (&lt;code&gt;.dmg&lt;/code&gt;) file, like a vault that you open, put stuff you want to keep safe inside, and then close again.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s how you go about making and using one.&lt;/p&gt;
&lt;h3&gt;Create the container, an encrypted disk image&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;First, open up your copy of Disk Utility.app, which is located in your computer&amp;#8217;s &lt;code&gt;/Applications/Utilities&lt;/code&gt; folder. (As an aside, this program is a bit like a swiss army knife for handling disk operations in Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X. You should definitely &lt;a href="http://en.wikipedia.org/wiki/Disk_Utility"&gt;find out what else it can do&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Next, select the &lt;em&gt;File &amp;rarr; New &amp;rarr; Blank Disk Image&amp;hellip;&lt;/em&gt; option. This will cause the New Blank Image window to appear.&lt;/li&gt;
&lt;li&gt;Fill in the typical details such as the disk image file&amp;#8217;s name and where you want to save it to. In addition, you&amp;#8217;ll be presented with a number of options such as Volume Name, Volume Size, and Image Format. The defaults are usually adequate except for Volume Name, which you should customize so that when you mount the disk image the disk label is meaningful for you, and the Image Format, which I recommend you switch to &amp;#8220;&lt;a href="http://en.wikipedia.org/wiki/Sparse_disk_image"&gt;sparse disk image&lt;/a&gt;.&amp;#8221;
&lt;p&gt;Sparse disk images can start small and grow automatically as you write more files into them. If what you want to keep secure in this manner are very large files, say gigantic high resolution PhotoShop documents, then you might &lt;a href="http://macosx.com/article/live-filevaultsparse-bundle-backups-in-leopard.html"&gt;consider the sparse &lt;em&gt;bundle&lt;/em&gt; disk image format&lt;/a&gt; instead.&lt;/p&gt;
&lt;p&gt;Also, obviously, set the Encryption to a value other than &amp;#8220;None.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s an example screenshot from my Mac:&lt;div class="wp-caption aligncenter" style="width: 510px"&gt;&lt;a href="http://maymay.net/blog/wp-content/uploads/2008/10/new-blank-image-screenshot.png"&gt;&lt;img src="http://maymay.net/blog/wp-content/uploads/2008/10/new-blank-image-screenshot.png" alt="Screenshot of the New Blank Image window showing meaningful values entered, Encryption field set to 128-bit, and Image Format field set to sparse disk image." title="new-blank-image-screenshot" width="500" height="470" class="size-full wp-image-691" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Screenshot of the New Blank Image window showing meaningful values entered, Encryption field set to 128-bit, and Image Format field set to sparse disk image.&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Press the &amp;#8220;Create&amp;#8221; button and you&amp;#8217;ll be presented with a standard password selection dialogue. This is the password you&amp;#8217;ll use to mount the disk image and is analogous to the idea of setting the combination on your vault&amp;#8217;s lock. &lt;a href="http://support.apple.com/kb/HT1506" title="Learn how to choose good passwords in Mac OS X."&gt;It&amp;#8217;s critical that the password you choose is a good one&lt;/a&gt;. Ideally, your password is a totally random string that may include any printable character. Since that&amp;#8217;s hard to remember, you can &lt;a href="http://maymay.net/blog/2008/05/06/one-minute-mac-tip-use-mac-os-xs-keychain-to-store-recover-and-sync-all-your-passwords-from-one-place/"&gt;have the Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X keychain manage your passwords for you&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Encrypt some files by writing them to the disk image&lt;/h3&gt;
&lt;p&gt;Now that you have an encrypted disk image, a secure container for your sensitive data, you can make use of it just as you might any other disk image on Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X. For instance, say I have a top secret file called &amp;#8220;My Killer Business Plan.pages&amp;#8221; and I don&amp;#8217;t want anyone to get at it. All I need to do is copy the file into my encrypted disk image, as the following screenshot shows:&lt;/p&gt;
&lt;a href="http://maymay.net/blog/wp-content/uploads/2008/10/encrypting-files-via-copy-to-image.jpg"&gt;&lt;img src="http://maymay.net/blog/wp-content/uploads/2008/10/encrypting-files-via-copy-to-image-300x138.jpg" alt="Copying &amp;quot;My Killer Business Plan.pages&amp;quot; to the encrypted disk image encrypts the file, too." title="encrypting-files-via-copy-to-image" width="300" height="138" class="size-medium wp-image-693" /&gt;&lt;/a&gt;
&lt;p&gt;It should go without saying that you want to delete the original, unencrypted copy of the file you&amp;#8217;re copying into the encrypted disk image, but I&amp;#8217;ll say that anyway. Don&amp;#8217;t leave unprotected copies of your files lying around. Also, be certain to unmount (eject) the disk image when you&amp;#8217;re done using it because the only thing the password protects is opening the disk image, not the files contained within it.&lt;/p&gt;
&lt;h3&gt;External references&lt;/h3&gt;
&lt;p&gt;Here are some additional places where this technique is discussed. Check out these additional articles about this topic elsewhere for more information and other perspectives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://support.apple.com/kb/HT1578"&gt;Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X: How to create a password-protected (encrypted) disk image&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.info.apple.com/article.html?artnum=107332"&gt;Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X: About Encrypted Disk Images&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.macosxhints.com/article.php?story=20030212055706937"&gt;MacOSXHints.com: Create an encrypted disk image that grows as required&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:60459</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/60459.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=60459"/>
    <title>Add a post limit and output format to the WordPress Category Posts plugin v2.0</title>
    <published>2008-09-19T15:24:27Z</published>
    <updated>2008-09-19T17:22:38Z</updated>
    <category term="writing and blogging"/>
    <category term="tech/computing"/>
    <category term="web design"/>
    <category term="php"/>
    <category term="programming"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/09/19/add-a-post-limit-and-output-format-to-the-wordpress-category-posts-plugin-v20/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/09/19/add-a-post-limit-and-output-format-to-the-wordpress-category-posts-plugin-v20/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Tonight I wrote a quick (and idiotic) patch to the very simple WordPress Category Post plugin v2.0. This backwards-compatible patch features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;parameter-based post limit to define how many posts the plugin function will print&lt;/li&gt;
&lt;li&gt;parameter-based format option to output the posts in real &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; elements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;a href="http://maymay.net/blog/wp-content/uploads/2008/09/wp-category-posts.patch"&gt;&lt;code&gt;wp-category-posts.php&lt;/code&gt; patch file is available for download here&lt;/a&gt;. To apply the patch, run the following commands at your shell promp:&lt;/p&gt;
&lt;pre class="shell"&gt;
cd &lt;var&gt;path/to/wordpress/installation&lt;/var&gt;/wp-content/plugins/wordpress-category-posts
patch -p0 &amp;lt; &lt;var&gt;path/to/downloaded&lt;/var&gt;/wp-category-posts.patch
&lt;/pre&gt;
&lt;p&gt;I&amp;#8217;m hoping this will get integrated as the next version of the plugin, perhaps version 2.1.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:60059</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/60059.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=60059"/>
    <title>YubiKey and OpenID: Two great tastes that taste better together</title>
    <published>2008-09-01T17:08:28Z</published>
    <updated>2008-09-01T17:08:28Z</updated>
    <category term="security &amp;amp;amp; privacy"/>
    <category term="tech/computing"/>
    <category term="tech news"/>
    <category term="crosspost"/>
    <category term="business &amp;amp;amp; e-commerce"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/09/01/yubikey-and-openid-two-great-tastes-that-taste-better-together/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/09/01/yubikey-and-openid-two-great-tastes-that-taste-better-together/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;In some communities, this is sort of old news, however I&amp;#8217;ve recently become aware of an exciting and affordable security product called the &lt;a href="http://www.yubico.com/products/yubikey/"&gt;YubiKey&lt;/a&gt;, manufactured by &lt;a href="http://www.yubico.com/"&gt;Yubico&lt;/a&gt;. The YubiKey is a $35 USD one-time password second-factor authentication token that uses 128-bit AES encryption to provide identity verification. That&amp;#8217;s a mouthful, but what it really means is this: using a YubiKey to log in to stuff makes your logins about as secure as a military installation. Here&amp;#8217;s how.&lt;/p&gt;
&lt;p&gt;When you log in to just about any Web site or Internet-enabled service, say &lt;a href="http://basecamphq.com/"&gt;Basecamp&lt;/a&gt; for example, you traditionally simply type in a user name and matching password. This is known as one-factor authentication because all you need to do to log in successfully is use a matching pair of user names and their passwords. Since the user name is not hidden, the only piece of the puzzle that&amp;#8217;s providing any security is your password.&lt;/p&gt;
&lt;p&gt;Now, a password is something you have to remember, so this factor is called &amp;quot;something you know.&amp;quot; Of course, if someone else also knows your password, this means that person can log in pretending to be you. Thus enters the need for a second factor for authentication.&lt;/p&gt;
&lt;p&gt;The YubiKey is a physical &lt;acronym title="Universal Serial Bus"&gt;USB&lt;/acronym&gt; fob device with a unique ID. That is, each YubiKey in the world has its own ID, meaning that no two are identical. This implies that if you have a YubiKey with you, no one else can have that same YubiKey anywhere else in the universe. Thus, this gives you a second factor with which to authenticate yourself, specifically it&amp;#8217;s &amp;quot;something you have.&amp;quot;&lt;/p&gt;
&lt;p&gt;When you combine something you know (for instance, a password) with something you have (such as a YubiKey), you have two-factor authentication. Authenticating yourself with both of these factors is obviously more secure than relying solely on one factor because in order to compromise it an attacker needs to compromise both factors; the attacker would need to know what you know (figure out your password) &lt;em&gt;and&lt;/em&gt; steal something you have (physically obtain your YubiKey).&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re familiar with one-time credit cards such as those that PayPal offers, you can think of the YubiKey like one of these cards, but instead of being used to make online purchases, it&amp;#8217;s used for logging into stuff (and, of course, you don&amp;#8217;t need more than one physical YubiKey). Of course, for authentication to work with the YubiKey the application or service you are logging into has to be able to understand that you&amp;#8217;re using one of these authentication devices.&lt;/p&gt;
&lt;p&gt;The good news here is that the entire process of using a YubiKey is a well-documented, &lt;a href="http://code.google.com/p/yubico-php-lib/"&gt;open-source&lt;/a&gt;, and open-spec scheme so it&amp;#8217;s easy for service providers to implement. And, because &lt;a href="http://www.yubico.com/developers/openid/"&gt;Yubico is also an OpenID identity provider&lt;/a&gt;, you can use your YubiKey to log into any site that supports &lt;a href="http://openid.net/"&gt;the OpenID protocol&lt;/a&gt; right now, such as (you guessed it) Basecamp! There&amp;#8217;s even &lt;a href="http://henrik.schack.dk/yubikey-plugin/"&gt;a WordPress YubiKey plugin&lt;/a&gt; so you could theoretically use your YubiKey to secure your authentication to any of your &lt;a href="http://wordpress.org/"&gt;WordPress blogs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The YubiKey spec is, itself, completely independant of the OpenID spec and vice versa, which is what makes the combination so formidable. What&amp;#8217;s so cool about this process is that the site you&amp;#8217;re authenticating to, such as Basecamp or your WordPress blog, doesn&amp;#8217;t have to know anything about &lt;em&gt;how&lt;/em&gt; you&amp;#8217;re authenticating because the OpenID provider (Yubico in this example) simply returns the answer&amp;mdash;a perfect example of a well-constructed &lt;acronym title="Application Programming Interface"&gt;API&lt;/acronym&gt; at work. Either you have successfully authenticated to your OpenID provider or you haven&amp;#8217;t, and the site can respond accordingly.&lt;/p&gt;
&lt;p&gt;And if that&amp;#8217;s not &lt;em&gt;cool&lt;/em&gt; enough, want to know the coolest thing about the YubiKey? It&amp;#8217;s environmentally friendly! The YubiKey web site states that the &lt;q cite="http://www.yubico.com/products/yubikey/"&gt;robust, ultra-thin and battery-free design increases lifetime and reduces environmental impact.&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m more than seriously considering getting one of these myself, and even beyond that, getting one for all of my fellow site editors on some of the community web sites I help maintain. This is especially important for sites dealing in confidential or otherwise sensitive information, such as those which hold financial records or have other privacy concerns. Securing the authentication of privileged users such as the site administrators seems a natural step.&lt;/p&gt;
&lt;p&gt;Even better yet, because the only cost to implementing this system is developer resources and the cost of the physical YubiKey device, I&amp;#8217;m also seriously considering baking this right into any new sites I develop. At $35, a YubiKey is actually cheaper than an &lt;acronym title="Secure Sockets Layer"&gt;SSL&lt;/acronym&gt; certificate, and even though they don&amp;#8217;t protect against &lt;em&gt;all&lt;/em&gt; the same attack vectors, I think a device like the YubiKey is clearly a vastly superior solution in the majority of use cases.&lt;/p&gt;
&lt;p&gt;I never really had a compelling reason to begin to propagate an OpenID identity before but now, at last, I do.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:59366</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/59366.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=59366"/>
    <title>Productivity: It&amp;#8217;s not what you do, it&amp;#8217;s how you do it, and twentysomethings do it bette</title>
    <published>2008-08-04T15:20:59Z</published>
    <updated>2008-08-04T15:22:25Z</updated>
    <category term="tech/computing"/>
    <category term="crosspost"/>
    <category term="productivity"/>
    <category term="business &amp;amp;amp; e-commerce"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/08/04/productivity-its-not-what-you-do-its-how-you-do-it-and-twentysomethings-do-it-better/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/08/04/productivity-its-not-what-you-do-its-how-you-do-it-and-twentysomethings-do-it-better/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;I don&amp;#8217;t believe I have ever before posted an entry that, for all intents and purposes, is just a link to another blog post. However, this blog post is simply so brilliant and yet so short and easily-digestable, that I have nothing more to say. Thus: &lt;a href="http://blog.penelopetrunk.com/2008/07/31/twentysomething-7-reasons-why-my-generation-is-more-productive-than-yours/"&gt;Twentysomething: 7 Reasons Why My Generation Is More Productive Than Yours&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By those definitions, I&amp;#8217;ve been a productive twentysomething-year-old since I was a pre-teen, which just goes to show you that age has nothing to do with it. &lt;em&gt;Damn&lt;/em&gt; straight.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:58914</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/58914.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=58914"/>
    <title>One Minute Mac Tip: Remove .DS_Store files from ZIP Archives</title>
    <published>2008-08-04T06:08:41Z</published>
    <updated>2008-08-04T06:13:05Z</updated>
    <category term="bash/shell scripting"/>
    <category term="tech/computing"/>
    <category term="windows"/>
    <category term="mac os x"/>
    <category term="programming"/>
    <category term="crosspost"/>
    <category term="productivity"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/08/04/one-minute-mac-tip-remove-ds_store-files-from-zip-archives/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/08/04/one-minute-mac-tip-remove-ds_store-files-from-zip-archives/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;The Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X Finder has some nifty features, one of which is an exceptionally useful contextual menu item to create ZIP archives of folders. Unfortunately, the Finder also has some really, really annoying habits, one of which is to create a file named &lt;code&gt;.DS_Store&lt;/code&gt; in each folder a user opens (when not in Column view). What this means is that if you create a ZIP archive on your Mac and then send it to someone who unzips it without the Finder (such as a Windows user using the Windows Explorer), the recipient will see a lot of litter in the form of useless and meaningless &lt;code&gt;.DS_Store&lt;/code&gt; files.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re not afraid of the Terminal, this can be avoided. Put the following lines in your &lt;code&gt;~/.profile&lt;/code&gt; (or similar):&lt;/p&gt;
&lt;pre class="shell"&gt;
alias rmds='find . -name ".DS_Store" -type f -print0 | xargs -0 rm'
&lt;/pre&gt;
&lt;p&gt;What this does is creates a new command that you can use (&lt;code&gt;rmds&lt;/code&gt;) which recursively finds and deletes any regular file named &amp;#8220;.DS_Store&amp;#8221; starting from the current directory. Thus, running this command in the folder you are about to create an archive out of will clean it first, and will prevent unnecessary confusion on the part of your archive file recipient.&lt;/p&gt;
&lt;p&gt;Alternatively, another way to do this is to use the command-line &lt;code&gt;zip&lt;/code&gt; program and an (admittedly more complicated) pipeline to remove the &lt;code&gt;.DS_Store&lt;/code&gt; files &lt;em&gt;after&lt;/em&gt; they have been added to the archive. To do that, use this series of commands:&lt;/p&gt;
&lt;pre class="shell"&gt;
zip -d &lt;var&gt;ZIPfile.zip&lt;/var&gt; `unzip -l &lt;var&gt;ZIPfile.zip&lt;/var&gt; | grep .DS_Store | awk '{print $4}'`
&lt;/pre&gt;
&lt;p&gt;where, naturally, &lt;var&gt;ZIPfile.zip&lt;/var&gt; is the ZIP archive you want to remove the &lt;code&gt;.DS_Store&lt;/code&gt; files from. Creating an alias out of that command (and making it work for paths that contain spaces) is left as an exercise for the reader. ;)&lt;/p&gt;
&lt;p&gt;As an aside, the &lt;code&gt;alias&lt;/code&gt;, &lt;code&gt;find&lt;/code&gt; and &lt;code&gt;xargs&lt;/code&gt; commands are incredibly useful in their own right and can be used to do a lot of pretty amazing things. As always, &lt;code&gt;man &lt;var&gt;command&lt;/var&gt;&lt;/code&gt; will give you the nitty gritty.&lt;/p&gt;
&lt;p&gt;Also as an aside, you can stop the Finder from creating &lt;code&gt;.DS_Store&lt;/code&gt; files entirely when browsing network volumes (like Windows shares) with another command, &lt;a href="//support.apple.com/kb/HT1629"&gt;documented in Apple&amp;#8217;s Knowledge Base&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:58629</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/58629.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=58629"/>
    <title>One Minute Mac Tip: Securely erase files from the command line</title>
    <published>2008-07-31T09:24:44Z</published>
    <updated>2008-07-31T09:24:44Z</updated>
    <category term="security &amp;amp;amp; privacy"/>
    <category term="tech/computing"/>
    <category term="mac os x"/>
    <category term="crosspost"/>
    <category term="apple/macintosh"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/07/31/one-minute-mac-tip-securely-erase-files-from-the-command-line/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/07/31/one-minute-mac-tip-securely-erase-files-from-the-command-line/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Security provisions are one of those &amp;#8220;things&amp;#8221; that Mac users have been snooty about—for good reason—for decades. However, I&amp;#8217;d dare say that, even though the UNIX architecture of the underpinnings of Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X is much more secure than most other popular operating systems (cough, Windows, cough), much of the security benefits that Mac users have enjoyed are really security-by-obscurity, which is not very secure at all. With the added popularity of Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X, lots of responsibility suddenly shifts from the vendor (Apple, Inc.) to the individual users (this means you) to keep your data secure.&lt;/p&gt;
&lt;p&gt;Apple has been on point, however, providing good security utilities built right into the operating system and easily available to end users. Of most common use is probably &amp;#8220;Secure Empty Trash&amp;#8221; which securely deletes files that you put into the trash. The counterpart to this function available in the Finder is, too few Mac users know, the &lt;code&gt;srm&lt;/code&gt; or &lt;dfn&gt;secure remove&lt;/dfn&gt; command-line utility.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;srm&lt;/code&gt; can be thought of as simply a version of &lt;code&gt;rm&lt;/code&gt; that overwrites file data before unlinking it from the file system. It comes with a few more options than &lt;code&gt;rm&lt;/code&gt; comes with all geared towards tweaking just how it overwrites files. My favorite is &lt;code&gt;-m&lt;/code&gt;, which the manual page says:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;overwrite the file with 7 US DoD compliant passes (0xF6, 0&amp;#215;00, 0xFF, random, 0&amp;#215;00, 0xFF, random)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I had the perfect occasion to use &lt;code&gt;srm&lt;/code&gt; today: I was transporting my &lt;acronym title="Secure SHell"&gt;SSH&lt;/acronym&gt; private key from one laptop to another via a temporary drive. I wanted to securely remove all traces of the private key file from the temporary drive after installing it in the new computer. (See &lt;a href="http://sial.org/howto/openssh/publickey-auth/"&gt;this &lt;acronym title="Secure SHell"&gt;SSH&lt;/acronym&gt; public key tutorial&lt;/a&gt; if you don&amp;#8217;t know why this might be important.)&lt;/p&gt;
&lt;p&gt;After copying the private key file over, removing it securely looks like this:&lt;/p&gt;
&lt;pre&gt;
srm -m private_key_file
&lt;/pre&gt;
&lt;p&gt;It&amp;#8217;s that easy.&lt;/p&gt;
&lt;p&gt;To be confident that your file is truly overwritten with garbage, you can use the &lt;code&gt;-n&lt;/code&gt; option. This is one way to retain a file, but completely corrupt it. Observe:&lt;/p&gt;
&lt;pre&gt;
Meitar:~ meitar$ cat testfile
Hello world.
Meitar:~ meitar$ srm -mn testfile
Meitar:~ meitar$ cat testfile
?
 ?)c?I
      P?Meitar:~ meitar$
&lt;/pre&gt;
&lt;p&gt;That garbage you see after the second invocation of &lt;code&gt;cat&lt;/code&gt; shows that the file really was trashed, that is, overwritten with garbage data. Now, a simple &lt;code&gt;rm testfile&lt;/code&gt; can do the rest of the work.&lt;/p&gt;
&lt;p&gt;As always, &lt;code&gt;man srm&lt;/code&gt; will give you all the other juicy details.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:57830</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/57830.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=57830"/>
    <title>One minute Mac tip: Schedule off-hours downloads by enabling `at`, `batch` UNIX job scheduling comma</title>
    <published>2008-07-14T08:48:57Z</published>
    <updated>2008-07-14T08:50:46Z</updated>
    <category term="howto"/>
    <category term="tech/computing"/>
    <category term="mac os x"/>
    <category term="unix/linux"/>
    <category term="crosspost"/>
    <category term="productivity"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/07/14/one-minute-mac-tip-schedule-off-hours-downloads-by-enabling-at-batch-unix-job-scheduling-commands/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/07/14/one-minute-mac-tip-schedule-off-hours-downloads-by-enabling-at-batch-unix-job-scheduling-commands/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;In a lot of places in the world, many people still have to pay for bandwidth costs. I&amp;#8217;m one of those people who just can&amp;#8217;t afford to download lots of stuff during peak hours when my bandwidth might quickly get shaped or, worse, I&amp;#8217;ll get charged. Nevertheless, there are often plenty of legit reasons to initiate huge downloads.&lt;/p&gt;
&lt;p&gt;In these cases, it makes sense to be smart about &lt;em&gt;when&lt;/em&gt; I initiate these downloads. Being something of a UNIX-head myself, I wanted to use the age-old &lt;code&gt;at&lt;/code&gt; command to download a Linux ISO during off-peak hours, which my &lt;acronym title="Internet Service Provider"&gt;ISP&lt;/acronym&gt; says starts at 2 AM. Much to my chagrin, I found that &lt;code&gt;at&lt;/code&gt; doesn&amp;#8217;t work by default on Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X and, worse, the Leopard man page leads to a dead end (though it didn&amp;#8217;t back in Tiger…).&lt;/p&gt;
&lt;p&gt;Turns out that the system daemon that is responsible for checking up on &lt;code&gt;at&lt;/code&gt; jobs has been wrapped with a &lt;code&gt;launchd&lt;/code&gt; job. This makes enabling &lt;code&gt;at&lt;/code&gt; on your system really easy:&lt;/p&gt;
&lt;pre&gt;sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist&lt;/pre&gt;
&lt;p&gt;Once you&amp;#8217;ve done this, you can now use &lt;code&gt;at&lt;/code&gt; as you normally have done. For instance, I could now schedule my downloads to happen during the off-peak hours:&lt;/p&gt;
&lt;pre&gt;&lt;samp&gt;Perseus:Fedora maymay$ &lt;/samp&gt;at 2:15am tomorrow # now press &lt;kbd&gt;return&lt;/kbd&gt;
curl -O http://download.fedoraproject.org/pub/fedora/linux/releases/9/Fedora/x86_64/iso/Fedora-9-x86_64-&lt;acronym title="Digital Video Disc"&gt;DVD&lt;/acronym&gt;.iso
# now press &lt;kbd&gt;CTRL-D&lt;/kbd&gt;.
&lt;samp&gt;job 1 at Tue Jul 15 02:15:00 2008
Perseus:Fedora maymay$ &lt;/samp&gt;atq
&lt;samp&gt;1	Tue Jul 15 02:15:00 2008&lt;/samp&gt;
&lt;/pre&gt;
&lt;p&gt;This is also incredibly handy for scheduling just about any resource-intensive task that you don&amp;#8217;t have to do &lt;em&gt;right now&lt;/em&gt;. To take it one step further, you can even let the computer itself choose when to run these resource-heavy tasks by using the &lt;code&gt;batch&lt;/code&gt; command, which will execute commands much like &lt;code&gt;at&lt;/code&gt; but will check the system load average instead of the system clock to determine if it should start the job.&lt;/p&gt;
&lt;p&gt;Note that with the &lt;code&gt;com.apple.atrun&lt;/code&gt; job loaded &lt;code&gt;/usr/libexec/atrun&lt;/code&gt; is started every 30 seconds (unless you change the &lt;code&gt;StartInterval&lt;/code&gt; key in the &lt;code&gt;plist&lt;/code&gt; file). Since the &lt;code&gt;atrun&lt;/code&gt; command checks a file on disk (that it places in the &lt;code&gt;/usr/lib/cron/jobs&lt;/code&gt; directory) to see if there is any work to do, this will probably prevent your disks from ever sleeping, which could be a major concern for battery life on portables. Also, obviously, your computer needs to be turned on and awake for the job to actually launch.&lt;/p&gt;
&lt;p&gt;For more information, check out the result of typing &lt;code&gt;man at&lt;/code&gt; and &lt;code&gt;man launchctl&lt;/code&gt; at a Terminal prompt. There&amp;#8217;s also a really good &lt;a href="http://video.google.com/videoplay?docid=1781045834610400422"&gt;Google Tech Talk about Launchd&lt;/a&gt; that will teach you a lot more about job scheduling on Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:57498</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/57498.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=57498"/>
    <title>One minute Mac tip: Auto-complete, spellcheck, and search for definitions in Cocoa text fields</title>
    <published>2008-06-28T10:19:50Z</published>
    <updated>2008-06-28T10:28:53Z</updated>
    <category term="writing and blogging"/>
    <category term="howto"/>
    <category term="tech/computing"/>
    <category term="mac os x"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/06/28/one-minute-mac-tip-auto-complete-spellcheck-and-search-for-definitions-in-cocoa-text-fields/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/06/28/one-minute-mac-tip-auto-complete-spellcheck-and-search-for-definitions-in-cocoa-text-fields/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Without doubt, the most common use of computers today is to create written content of some kind. Blogs are an obvious example, but written content can take a number of forms. Writing manuscripts for publication is another example.&lt;/p&gt;
&lt;p&gt;No matter what kind of writing you&amp;#8217;re doing, using good tools to make your writing technically better is an incredibly handy thing. Letting the computers do the technical stuff&amp;mdash;the stuff they&amp;#8217;re good at&amp;mdash;let&amp;#8217;s you focus on the creative stuff: writing great content. Which is why, if you use a Mac, you&amp;#8217;ll be happy to hear that any application&amp;#8217;s text field let&amp;#8217;s you do a number of really cool things (as long as it&amp;#8217;s a &lt;a href="//developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt; application, of course).&lt;/p&gt;
&lt;h2&gt;1. Auto-complete unfinished words&lt;/h2&gt;
&lt;p&gt;Try this out:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open TextEdit, from your &lt;code&gt;/Applications&lt;/code&gt; directory. A new blank document will open.&lt;/li&gt;
&lt;li&gt;Type &lt;kbd&gt;Hel&lt;/kbd&gt; and then press the &lt;kbd&gt;ESC&lt;/kbd&gt; key. A drop-down menu will suddenly appear with an alphabetically sorted auto-complete list of suggestions, sourced from your computer&amp;#8217;s current language dictionary. It looks like this: &lt;a href="http://maymay.net/blog/wp-content/uploads/2008/06/cocoa-text-auto-complete.png"&gt;&lt;img src="http://maymay.net/blog/wp-content/uploads/2008/06/cocoa-text-auto-complete.png" alt="Mac OS X\&amp;#39;s native Cocoa framework allows for many applications to get \&amp;quot;auto-complete\&amp;quot; functionality for free." title="cocoa-text-auto-complete" width="255" height="383" class="alignnone size-full wp-image-488" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This feature works with both &lt;a href="//www.apple.com/iwork/pages/"&gt;Pages&lt;/a&gt; and, for those of you still using it for some reason (I know you&amp;#8217;re out there), TextEdit, too. Also, if you&amp;#8217;re a developer &lt;em&gt;and&lt;/em&gt; a writer as well (like I am), you&amp;#8217;ll be happy to hear that this feature also works with &lt;a href="http://developer.apple.com/tools/xcode/index.html"&gt;Xcode&lt;/a&gt;&amp;#8217;s Code Sense feature, and suggests completions for variable, function, class, and method names in your code.&lt;/p&gt;
&lt;h2&gt;2. Spellcheck as you type&lt;/h2&gt;
&lt;p&gt;A Cocoa text input field also has a number of other tricks up its sleeve. For instance, in many applications you can elect to turn on the &amp;#8220;Check spelling as you type&amp;#8221; feature, which will cause words you misspell (words not in the computer&amp;#8217;s dictionary) to appear with a dotted red underline. If you right-click on these words, the contextual menu that appears will offer spelling corrections.&lt;/p&gt;
&lt;p&gt;However, sometimes we use words like those in slang or colloquial language that isn&amp;#8217;t in a proper dictionary. These words will still appear to be &amp;#8220;misspelled&amp;#8221; when you type, so in these cases, we can tell Mac &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; X to &amp;#8220;Learn Spelling&amp;#8221; (also from the contextual menu). When you select this option, you append that spelling to your personal dictionary. (This is really just a plain-text file located at &lt;code&gt;~/Library/Spelling/&lt;var&gt;lang&lt;/var&gt;&lt;/code&gt; file, where &lt;var&gt;lang&lt;/var&gt; is the language code you&amp;#8217;re typing in. For Enlgish, this file is &lt;code&gt;~/Library/Spelling/en&lt;/code&gt;.)&lt;/p&gt;
&lt;h2&gt;3. Look up word definitions and search for text in Google or Spotlight&lt;/h2&gt;
&lt;p&gt;Last, but certainly not least, another neat thing you can do with text on your Mac is look them up with Dictionary.app. Simply highlight some selectable text on screen, right-click and select &amp;#8220;Look up in Dictionary&amp;#8221;. This will cause Dictionary.app to open and display the definition of the selected word.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maymay.net/blog/wp-content/uploads/2008/06/cocoa-text-contextual-menu.png"&gt;&lt;img src="http://maymay.net/blog/wp-content/uploads/2008/06/cocoa-text-contextual-menu.png" alt="" title="cocoa-text-contextual-menu" width="264" height="287" class="alignnone size-full wp-image-489" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Since &lt;a href="//www.apple.com/pro/tips/wiki.html"&gt;Dictionary.app can also look up articles in Wikipedia&lt;/a&gt;, this is also a very quick way to go to a Wikipedia article without ever having to open up a Web browser.&lt;/p&gt;
&lt;p&gt;Also, from the very same menu, you &lt;em&gt;can&lt;/em&gt; open a Web browser. Simply select &amp;#8220;Search in Google&amp;#8221; to cause your default Web browser to launch a Google search for the highlighted text.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:56966</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/56966.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=56966"/>
    <title>Arbitrarily exclude posts from displaying in WordPress</title>
    <published>2008-06-06T18:11:09Z</published>
    <updated>2008-06-06T18:11:09Z</updated>
    <category term="writing and blogging"/>
    <category term="howto"/>
    <category term="web design"/>
    <category term="php"/>
    <category term="programming"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/06/06/arbitrarily-exclude-posts-from-displaying-in-wordpress/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/06/06/arbitrarily-exclude-posts-from-displaying-in-wordpress/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;When hacking away at WordPress sites, often times you&amp;#8217;ll find yourself in a situation where you need to filter out certain posts from displaying on some pages, such as the home page. There are a lot of ways to do this, but few are perfect. Recently, I had the need to do this and went searching for pre-existing solutions.&lt;/p&gt;
&lt;p&gt;I came across &lt;a href="//blog.gadodia.net/excluding-certain-categories-from-your-blog-main-page/"&gt;Vaibhav&amp;#8217;s post on the topic&lt;/a&gt; and noted that his solution uses the &lt;a href="//codex.wordpress.org/Template_Tags/query_posts" title="WordPress documentation for the query_posts() function."&gt;query_posts()&lt;/a&gt; function to alter WordPress&amp;#8217;s query object before &lt;a href="//codex.wordpress.org/The_Loop"&gt;The Loop&lt;/a&gt; has run. While this is a great solution if your exclusion criteria is simple enough to be supported directly by the WordPress query object, other times the query_posts() function doesn&amp;#8217;t provide you with the hook you need.&lt;/p&gt;
&lt;p&gt;In these cases, you can run the original query, note any modifications you need to make, and then create a new, modified query and display the results you get from running &lt;em&gt;that&lt;/em&gt; one instead. For instance, you might need to do this if you need to exclude posts based on category and, say, the beginning of their title, or their category and a certain piece of content in the post itself, or all three, or any other combination you can think of.&lt;/p&gt;
&lt;p&gt;Another advantage of this technique over simpler ones is that this method maintains the same behavior you&amp;#8217;d expect to see in every other way. Most notably, this means that if you&amp;#8217;ve told WordPress to display the 10 most recent posts on the home page (in the WordPress settings), you&amp;#8217;ll still see ten posts on that page even after you exclude some of them.&lt;/p&gt;
&lt;p&gt;To do something like excluding posts if they are in the &amp;#8220;Uncategorized&amp;#8221; category (traditionally the category with an ID of 1 in WordPress) and their title begins with &amp;#8220;Some title&amp;#8221;, you can do this:&lt;/p&gt;
&lt;pre class="php"&gt;
// original query runs in The (real) Loop first
while ( have_posts() ) : the_post();
    // detect pots matching our exclusion criteria
    if (in_category(1) &amp;#038;&amp;#038; (0 === strpos(the_title('', '', false), 'Some title')) ) {
        $wp_query-&amp;gt;post_count++; // increment the post counter
        continue;
    }
    endif;
endwhile;
// now make a new query and show the posts for real, with the adjusted post count and filtering
$my_new_query = new WP_Query($query_string.'&amp;#038;showposts='.$wp_query-&amp;gt;post_count);
// do another The Loop (and display the results this time)
while ( $my_new_query-&amp;gt;have_posts() ) : $my_new_query-&amp;gt;the_post();
    // detect and exclude these same posts
    if (in_category(1) &amp;#038;&amp;#038; (0 === strpos(the_title('', '', false), 'Some title')) ) { continue; }

// ...the rest of the WordPress template goes here...
&lt;/pre&gt;
&lt;p&gt;This is neat because it gives you the capability to define arbitrarily complex exclusion patterns and directly modify your new query object however you like before you execute it. Once you know this works, you&amp;#8217;ll probably want to extract the filtering code into a function. Using the above example, your new code might look like this:&lt;/p&gt;
&lt;pre class="php"&gt;
&lt;strong&gt;// define criteria for filtering
function matches_filtering_criteria () {
    if (in_category(1) &amp;#038;&amp;#038; (0 === strpos(the_title(&amp;#8221;, &amp;#8221;, false), &amp;#8216;Some title&amp;#8217;)) ) {
        return true;
    } else {
        return false;
    }
}&lt;/strong&gt;
// original query runs in The (real) Loop first
while ( have_posts() ) : the_post();
    // detect pots matching our exclusion criteria
    if (&lt;strong&gt;matches_filtering_criteria()&lt;/strong&gt;) {
        $wp_query-&amp;gt;post_count++; // increment the post counter
        continue;
    }
    endif;
endwhile;
// now make a new query and show the posts for real, with the adjusted post count and filtering
$my_new_query = new WP_Query($query_string.&amp;#8217;&amp;#038;showposts=&amp;#8217;.$wp_query-&amp;gt;post_count);
// do another The Loop (and display the results this time)
while ( $my_new_query-&amp;gt;have_posts() ) : $my_new_query-&amp;gt;the_post();
    //
    // detect and exclude these same posts
    if (&lt;strong&gt;matches_filtering_criteria()&lt;/strong&gt;) { continue; }

// &amp;#8230;the rest of the WordPress template goes here&amp;#8230;
&lt;/pre&gt;
&lt;p&gt;For more information on these functions, see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="//codex.wordpress.org/The_Loop"&gt;The Loop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//codex.wordpress.org/Template_Tags/in_category"&gt;in_category()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//codex.wordpress.org/Template_Tags/the_title"&gt;the_title()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//codex.wordpress.org/Function_Reference/WP_Query"&gt;WP_Query()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:56166</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/56166.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=56166"/>
    <title>Things different about Australia</title>
    <published>2008-03-02T09:50:25Z</published>
    <updated>2008-03-02T09:51:56Z</updated>
    <category term="personal"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/03/02/things-different-about-australia/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/03/02/things-different-about-australia/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;By way of example, I am being completely devoured by mosquitos sitting on a bench somewhere in Newtown, a suburb of Sydney. I&amp;#8217;m leeching wifi in quite literally the &lt;em&gt;only&lt;/em&gt; freely open, non-commercial wifi spot I&amp;#8217;ve been able to find in the entire city after searching for such a spot for more than a week. Turns out, Internet access here is obscenely expensive—even by American standards—which partially explains the lack of free, open Wi-Fi.&lt;/p&gt;
&lt;p&gt;Leeching this wifi is incredibly uncouth, I know, but I justify my behavior with the fact that I absolutely &lt;em&gt;must&lt;/em&gt; ensure that my finances are in order in time for things like rent payments and every other opportunity to use the Internet—my only means of banking at this point—have been unavailable. Indeed, even the most common &amp;#8220;free hotspot&amp;#8221; service in this city, &lt;a href="//unwired.com.au/"&gt;uConnect, provided by Unwired&lt;/a&gt;, shuts off at 7 PM. In fact, most of the city shuts off relatively early, save for nightspots and pubs.&lt;/p&gt;
&lt;p&gt;The University of Sydney campus is, for the most part, closed on weekends. Those of you familiar with New York&amp;#8217;s collegiate services would be appalled at the notion of something like your college library being &lt;em&gt;closed&lt;/em&gt; at anything other than normal 9-5 business hours, but that seems the norm here. Similarly, back to the Internet access frustrations, all (and I mean &lt;em&gt;every&lt;/em&gt;) bit of bandwidth you use on the University&amp;#8217;s network is monitored and, ultimately, limited. The University has a Squid &lt;acronym title="HyperText Transfer Protocol"&gt;HTTP&lt;/acronym&gt; proxy set up which you must use to get anywhere on the Internet, but each account has a bandwidth cap of 2 &lt;acronym title="MegaByte"&gt;MB&lt;/acronym&gt; per day, barring cache hits, of course. Beyond that, and you pay by the megabyte.&lt;/p&gt;
&lt;p&gt;All Internet access, it seems, has bandwidth caps like this. There&amp;#8217;s a veritable alphabet soup of ISPs that provide similar services, most over ADSL technology, since cable is hard to come by. Very frustrating, as I&amp;#8217;ve never before had to think about how and where my bandwidth is being spent.&lt;/p&gt;
&lt;p&gt;In any event, aside from the Internet access woes which were sadly unexpected, there are a number of other things about Sydney that are very different that New York City.&lt;/p&gt;
&lt;p&gt;In restaurants, water is either self-serve or comes in bottles instead of being poured into glasses. This is a great idea, because it means I&amp;#8217;m much more likely to actually have water when I want it. Also, waiters and waitresses expect no tip, so your bill is all you pay. This has two side effects, one rather nifty, and the other very uncool.&lt;/p&gt;
&lt;p&gt;First, because your waiter isn&amp;#8217;t your &lt;em&gt;personal&lt;/em&gt; server for the meal, any and all waiters will wait on you at your behest. None of this, &amp;#8220;I&amp;#8217;ll call your waiter&amp;#8221; non-sense. Makes restaurants seem much more cohesive, egalitarian—a theme in this country. Secondly, because wait staff get no tips, they get paid much better than they do in the states, which in turn raises prices for the meals. This goes so far as to change the prices on menus during &amp;#8220;public holidays,&amp;#8221; when—presumably—wait staff get paid time and a half. Menus often say &amp;#8220;surcharge applies on public holidays and weekends&amp;#8221; to indicate this.&lt;/p&gt;
&lt;p&gt;And speaking of menus, there&amp;#8217;s a whole different language for coffee here than in the states. Regular coffees as we know them in &lt;acronym title="New York City"&gt;NYC&lt;/acronym&gt; are called &amp;#8220;long blacks&amp;#8221; here. Contrast this with a &amp;#8220;short black,&amp;#8221; or single espresso. &amp;#8220;Flat whites&amp;#8221; are lattes served in coffee cups, whereas &amp;#8220;lattes&amp;#8221; are lattes served in regular water glasses. Why the distinction? I have no idea.&lt;/p&gt;
&lt;p&gt;Some things are the same. Mochas, for instance, are coffee with chocolate. (So are the &amp;#8220;stop&amp;#8221; buttons on the public transit busses, but I digress.) Other coffee slang bits sound way too Starbucks-ese for me to like them, such as &amp;#8220;Vienna long black,&amp;#8221; which just means a long black (regular) coffee with whip cream on top.&lt;/p&gt;
&lt;p&gt;If you order any coffee, don&amp;#8217;t expect a refill—there&amp;#8217;s no such thing as free refills here. In fact, everything, even the tiniest bit of luxury, is charged here. It costs you 10 cents per printed (B&amp;#038;W) page at the University of Sydney computer labs to print anything (but pages here are not the normal 8-and-a-half-by-11 that you&amp;#8217;re used to in the States). If you want hot water at the showers after taking a swim at Bondi Beach, for example, then you drop a 20 cent coin into the shower stall. Say you want some condiments for your fish and chips, like ketchup? That&amp;#8217;ll cost you 80 cents in addition to the price of your food. Tartar sauce is more expensive, at $1.10 per several-ounce dish.&lt;/p&gt;
&lt;p&gt;Food in general is obscenely expensive, and at first I thought it was just me, but after talking to locals it seems everyone&amp;#8217;s noticed the price increase. The past 7 summers in Australia have been very dry, so dry that the drought caused harvest yields to decrease dramatically, raising food prices by more than 30% in the past several years. Couple this rising inflation concerns, weakening U.S. Dollar strength, and what I&amp;#8217;m left with as an International traveller is the grim prospect of paying almost $15.00 (USD!) for a bacon and egg breakfast with a single, non-refillable coffee at any decent café.&lt;/p&gt;
&lt;p&gt;Similarly expensive are spirits and liquor, which in addition to being taxed at 10% like &lt;em&gt;everything&lt;/em&gt; else under Australia&amp;#8217;s national &amp;#8220;Goods and Services Tax&amp;#8221; (GST), have an additional tax associated with them dependent on their alcohol content. This means my favorite liquor, Tequila, costs about $70 AUD for a 750 ml bottle of Cuervo. Forget the really good stuff like 1800 Resposado or Patron, which are upwards of $100 for the same amount. &lt;em&gt;Sigh&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;As a result of all of this, my money is not going nearly as far as I would have hoped. I am looking forward to having an actual apartment—with an actual kitchen—because at least when that happens I can stop paying exorbitant prices for food. It&amp;#8217;s nearly impossible to cook in the hostels Sara and I have been staying at because they&amp;#8217;re simply uncomfortable, not private, and not very well-equipped. And to top it all off, I think my hostel&amp;#8217;s bed is giving me allergies.&lt;/p&gt;
&lt;p&gt;I have a job offer, assuming I can get permission to work from the New South Wales government. Ironically, permission to work is &lt;em&gt;also&lt;/em&gt; something I have to pay for—how crazy is that?—so I&amp;#8217;ve had to rush to set up bank accounts as soon as I got into the country. The banks, for what it&amp;#8217;s worth, are surprisingly good even though everyone here says they are terrible thieves. This makes me think no one from this country would be able to put up with any bank from the States.&lt;/p&gt;
&lt;p&gt;The best thing about my bank is that it has CSV, QIF, and MNX download options for &lt;em&gt;every single data table&lt;/em&gt; presented on their web site. This is, interestingly, the biggest selling point for me but something no one at the bank had any clue about. It&amp;#8217;s not mentioned in their marketing material, their sales staff had never heard of it, and the only reason I knew it existed was because I saw a screenshot with the words &amp;#8220;export data&amp;#8221; on the corner. I took a chance and set up my account with them based on this screen shot and it looks like it payed off. Machine-readable financial interchange, baby!&lt;/p&gt;
&lt;p&gt;Conclusions? This country is in what I consider to be the bronze age when it comes to technology. Only the elite technophiles—looked down upon as &amp;#8220;tall poppies&amp;#8221; here, rather a bad thing what with the whole egalitarian society thing—even know their way about anything other than a web browser or Microsoft Office. That being said, everyone knows how to lock their wifi, even if they don&amp;#8217;t know how to change the channel so that they can actually broadcast that signal more than 10 feet in any direction.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:55953</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/55953.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=55953"/>
    <title>Deleting GMail messages from an iPhone or iPod touch won&amp;#8217;t &amp;#8220;Archive&amp;#8221;</title>
    <published>2008-02-14T03:41:23Z</published>
    <updated>2008-02-14T03:41:23Z</updated>
    <category term="tech/computing"/>
    <category term="human-computer interaction"/>
    <category term="crosspost"/>
    <category term="apple/macintosh"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/02/13/deleting-gmail-messages-from-an-iphone-or-ipod-touch-wont-archive/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/02/13/deleting-gmail-messages-from-an-iphone-or-ipod-touch-wont-archive/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;I just paid way too much money for an iPod touch (because I&amp;#8217;m a technoslut), and in playing around with the Mail application it comes with ever since Macworld and the &amp;#8220;free Software Upgrade&amp;#8221;, I noticed a bit of a gotcha while using GMail &lt;acronym title="Internet Message Access Protocol"&gt;IMAP&lt;/acronym&gt; accounts.&lt;/p&gt;
&lt;p&gt;It seems, that despite syncing up with my iMac&amp;#8217;s accounts, the iPod touch (and, presumably, the iPhone as well), treat the &amp;#8220;Trash&amp;#8221; mailbox specially. Specifically, whereas you can map the &amp;#8220;Delete&amp;#8221; button in Apple Mail.app to function as though it were the GMail &amp;#8220;Archive&amp;#8221; button (&lt;a href="/blog/2007/11/01/how-to-configure-apple-mail-for-the-best-imap-gmail-experience/"&gt;by following these simple steps&lt;/a&gt;), Mail on the iPod touch or iPhone won&amp;#8217;t inherit the same behavior. &amp;#8220;Delete&amp;#8221; on the iPod touch really is an honest-to-goodness delete—forever.&lt;/p&gt;
&lt;p&gt;Instead, to Archive GMail messages on an iPod touch or iPhone, you&amp;#8217;ll need to tap the &amp;#8220;Move&amp;#8221; button (the folder icon with a downwards-facing arrow, second from the left on the bottom toolbar) and select the &amp;#8220;All Mail&amp;#8221; folder. I wonder why the difference in interface choices….&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:55722</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/55722.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=55722"/>
    <title>Insomnia of the worst kind</title>
    <published>2008-02-10T07:02:10Z</published>
    <updated>2008-02-10T07:02:10Z</updated>
    <category term="bipolar disorder &amp;amp;amp; moods"/>
    <category term="romance &amp;amp;amp; relationships"/>
    <category term="personal"/>
    <category term="crosspost"/>
    <category term="depression &amp;amp;amp; melancholy"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/02/10/insomnia-of-the-worst-kind/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/02/10/insomnia-of-the-worst-kind/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Tonight&amp;#8217;s my first of a little over a week&amp;#8217;s worth of nights alone. When this ends, I&amp;#8217;ll be on the other side of the planet. I&amp;#8217;ve turned out the lights maybe four times already, trying to get ready for bed, but my body just won&amp;#8217;t shut down despite its utter exhaustion. I really hate this feeling of waiting—having at once nothing and everything to do. I really hope I get some rest.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:54665</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/54665.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=54665"/>
    <title>Service-oriented Internet companies and porn: Ning gets it right</title>
    <published>2008-01-08T08:23:57Z</published>
    <updated>2008-01-08T08:27:58Z</updated>
    <category term="maybe maimed"/>
    <category term="tech news"/>
    <category term="crosspost"/>
    <category term="business &amp;amp;amp; e-commerce"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/01/08/service-oriented-internet-companies-and-porn-ning-gets-it-right/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/01/08/service-oriented-internet-companies-and-porn-ning-gets-it-right/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;I think it&amp;#8217;s important—for a lot of reasons—to let people do what they want rather than to try to force people to do what you think is right. Ning is a company that &lt;a href="//blog.pmarca.com/2008/01/porn-ning-and-t.html" title="Marc Andreesen explains his company&amp;#39;s position on pornography."&gt;gets it&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote cite="//blog.pmarca.com/2008/01/porn-ning-and-t.html"&gt;&lt;p&gt;In a nutshell, we aren&amp;#8217;t pro-porn, but we are pro-freedom.&lt;/p&gt;
&lt;p&gt;To prevent porn, you have to take an activist stand against freedom of expression &amp;#8212; you have to get in there and judge content, judge people, judge intent, and take action based on your judgments. I would never criticize a company for doing so, but I don&amp;#8217;t want to do that, and we as a company don&amp;#8217;t want to do that.&lt;/p&gt;
&lt;p&gt;We think a better approach is to let people fundamentally do what they want, as long as it isn&amp;#8217;t illegal and doesn&amp;#8217;t otherwise violate our terms of service.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;A heartfelt applause to Marc and everyone at Ning for putting their user&amp;#8217;s personal choices ahead of their own. It&amp;#8217;s not only good social justice, it&amp;#8217;s excellent business.&lt;/p&gt;
&lt;p&gt;Marc even provides some history:&lt;/p&gt;
&lt;blockquote cite="//blog.pmarca.com/2008/01/porn-ning-and-t.html"&gt;&lt;p&gt;From the very beginning of the Internet as a mass medium, porn has been present, and all of the Internet companies that have come before us have had to figure out where they stand.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;[D]uring my time at &lt;acronym title="America OnLine"&gt;AOL&lt;/acronym&gt;, I was fascinated to see how &lt;acronym title="America OnLine"&gt;AOL&lt;/acronym&gt; dealt with porn. &lt;acronym title="America OnLine"&gt;AOL&lt;/acronym&gt; had to balance two facts. One, their entire marketing thrust to be a mass market service meant that they had to come across as &amp;#8212; and be &amp;#8212; highly family-friendly. And in fact, they did a lot of work with parental controls and other features to make sure that families would use &lt;acronym title="America OnLine"&gt;AOL&lt;/acronym&gt; safely. But the other fact was that a huge part of &lt;acronym title="America OnLine"&gt;AOL&lt;/acronym&gt;&amp;#8217;s actual usage all through the 90&amp;#8217;s was for adult content &amp;#8212; chat rooms, bulletin boards, and all the rest.&lt;/p&gt;
&lt;p&gt;In practice, I think they balanced those two facts quite well &amp;#8212; &lt;acronym title="America OnLine"&gt;AOL&lt;/acronym&gt; could be used as a family-friendly service or as an open environment for people to do whatever they want, and it worked quite well for everyone.&lt;/p&gt;
&lt;p&gt;This is a model that Yahoo then followed, and Google more recently.&lt;/p&gt;
&lt;p&gt;Yahoo has always had an enormous amount of adult activity and material &amp;#8212; some estimates are that as much as half of Yahoo Groups&amp;#8217; activity is adult in nature, for example.&lt;/p&gt;
&lt;p&gt;And Google of course famously crawls and serves up search results and images for all kinds of adult topics, among every other topic in the world.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In light of many high-profile anti-porn practices by social networking sites such as MySpace, Facebook, and to a lesser degree, LiveJournal, it&amp;#8217;s great to see that at least one company has put &lt;em&gt;its own business ahead of other people&amp;#8217;s politics&lt;/em&gt;. It&amp;#8217;s precisely that sort of thing that&amp;#8217;s made Marc an entrepreneurial blockbuster time and time again.&lt;/p&gt;
&lt;p&gt;And frankly, I think the social agenda called &lt;em&gt;freedom&lt;/em&gt; is just as important.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Via &lt;a href="//susanmernit.blogspot.com/2008/01/marc-andressen-rocks-with-this-one.html" title="Susan Mernit&amp;#39;s blog."&gt;Susan Mernit&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:52924</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/52924.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=52924"/>
    <title>I want to go away</title>
    <published>2008-01-04T22:38:16Z</published>
    <updated>2008-01-04T22:38:16Z</updated>
    <category term="bipolar disorder &amp;amp;amp; moods"/>
    <category term="personal"/>
    <category term="crosspost"/>
    <category term="depression &amp;amp;amp; melancholy"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2008/01/04/i-want-to-go-away/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2008/01/04/i-want-to-go-away/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;I&amp;#8217;ve slept most of the day. I haven&amp;#8217;t even really slept, but I&amp;#8217;ve been in bed and haven&amp;#8217;t gotten up. I woke up at 9 AM at first, feeling full of energy but wanting nothing more than to go back to sleep. I woke up again, finally, at 2 PM or so after tossing and turning for hours.&lt;/p&gt;
&lt;p&gt;In less than two hours of being awake, I was crying in fits and starts on my bed again. I wanted to tire myself out again so I would go back to sleep. I just want to go away and hide.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:51504</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/51504.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=51504"/>
    <title>Steven Pinker&amp;#8217;s &amp;#8216;The Stuff of Thought&amp;#8217;</title>
    <published>2007-12-28T09:21:36Z</published>
    <updated>2007-12-28T09:34:02Z</updated>
    <category term="maybe maimed"/>
    <category term="information &amp;amp;amp; communication"/>
    <category term="personal"/>
    <category term="geeky"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2007/12/28/steven-pinkers-the-stuff-of-thought/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2007/12/28/steven-pinkers-the-stuff-of-thought/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;This video, which is one of the recent TED Talk videos, is of &lt;a href="//www.ted.com/index.php/talks/view/id/164"&gt;Steven Pinker&amp;#8217;s talk called &lt;cite&gt;The Stuff of Thought&lt;/cite&gt;&lt;/a&gt;. This is simply brilliant. So brilliant, in fact, that those who know me well are about to be utterly astounded by what I am going to say:&lt;/p&gt;
&lt;p&gt;I now understand the value of indirect communication. And it is &lt;em&gt;immense&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I also understand why I never saw it before: the benefits are reaped solely through language&amp;#8217;s &lt;em&gt;social&lt;/em&gt; applications, not its analytical ones. See for yourself by watching the video.&lt;/p&gt;
&lt;div style="text-align: center"&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:51189</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/51189.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=51189"/>
    <title>If</title>
    <published>2007-12-25T09:41:49Z</published>
    <updated>2007-12-25T09:43:27Z</updated>
    <category term="maybe maimed"/>
    <category term="romance &amp;amp;amp; relationships"/>
    <category term="personal"/>
    <category term="crosspost"/>
    <category term="general"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2007/12/25/if/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2007/12/25/if/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Time is a limited resource. That&amp;#8217;s why patience is a virtue.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;If&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;By &lt;a href="//en.wikipedia.org/wiki/Rudyard_Kipling"&gt;Rudyard Kipling&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;IF you can keep your head when all about you
Are losing theirs and blaming it on you,
If you can trust yourself when all men doubt you,
But make allowance for their doubting too;
If you can wait and not be tired by waiting,
Or being lied about, don't deal in lies,
Or being hated, don't give way to hating,
And yet don't look too good, nor talk too wise:

If you can dream - and not make dreams your master;
If you can think - and not make thoughts your aim;
If you can meet with Triumph and Disaster
And treat those two impostors just the same;
If you can bear to hear the truth you've spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
And stoop and build 'em up with worn-out tools:

If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breathe a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: 'Hold on!'

If you can talk with crowds and keep your virtue,
' Or walk with Kings - nor lose the common touch,
if neither foes nor loving friends can hurt you,
If all men count with you, but none too much;
If you can fill the unforgiving minute
With sixty seconds' worth of distance run,
Yours is the Earth and everything that's in it,
And - which is more - you'll be a Man, my son!&lt;/pre&gt;
&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:maymaym:50593</id>
    <link rel="alternate" type="text/html" href="http://maymaym.livejournal.com/50593.html"/>
    <link rel="self" type="text/xml" href="http://maymaym.livejournal.com/data/atom/?itemid=50593"/>
    <title>Today is not the day</title>
    <published>2007-12-20T16:35:07Z</published>
    <updated>2007-12-20T16:35:07Z</updated>
    <category term="personal"/>
    <category term="crosspost"/>
    <content type="html">&lt;div style="margin: .3em; padding: .5em; border: 1px solid #000;"&gt;This entry was originally published at &lt;a href="http://maymay.net/blog"&gt;my site's personal web log&lt;/a&gt;. Additional information or &lt;a href="http://maymay.net/blog/2007/12/20/today-is-not-the-day/#comments"&gt;comments&lt;/a&gt; may be available on &lt;a href="http://maymay.net/blog/2007/12/20/today-is-not-the-day/"&gt;the original posting&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;Augh. Today is not the day I want to be an adult. Or have to go down to the courthouse. Or deal with law things and governments. Or go run errands before I can do that. Or stress about all sorts of future plans stuff. Or….&lt;/p&gt;
&lt;p&gt;Bah. I want to crawl back into bed and stay there until Spring comes.&lt;/p&gt;</content>
  </entry>
</feed>
