Sunday, July 13th, 2014

The tide

Thank you to everyone who has donated—or is going to donate—to the Oregon Humane Society in Chloe’s memory.

Thank you to everyone who sent me words of comfort. I really, really appreciate it.

I’ve been surprised by where else I’ve found comfort:

Tomorrow is Monday, the start of the working week. Tomorrow I will go to work. Tomorrow I will, to all outward appearances, carry on as normal.

Except it won’t really be normal. It’s going to be very strange. The world feels very strange to me. A world without Chloe isn’t right. It isn’t normal. A world without Chloe feels wrong. Skewed. Off-kilter.

But I’m going to go into work. I’m going to do some hacking. I’m going to write about code. I’m going to post links related to web design and development. I’m going to get back to organising this year’s dConstruct. (Can you believe that the last time I was IMing with Chloe, I was bitching to her about lacklustre ticket sales? What a fucking joke.)

In short, I’m going to carry on. Even though the world feels wrong. I’m not sure if the world will ever feel right again.

I thought that grief was like a tsunami. It’s unstoppable. It washes over you completely. It flattens you and leaves you battered and bruised. But then it’s over, right?

It turns out that grief is more like the tide. The tsunami was just the first wave. There will be many more.

Over the course of a single day, many a wave will hit me unexpectedly and I’ll find myself weeping …again. Over time, those waves will abate. But grief is fractally tidal. There are longer waves—days, weeks, months, years.

Remy has endured four years of grief and counting:

Time won’t ever heal this hole in our lives. It shouldn’t either.

But he carries on, even though the world is wrong:

You just get stronger. You have to.

It doesn’t mean it doesn’t hurt anymore. It does. I’m just able to carry that pain and make it mine and part of me, because I’ve learnt how to.

Time doesn’t heal. It just looks that way from the outside in.

So tomorrow I’ll go back to work, and I’ll go back to writing and coding and talking and organising. Perhaps those activities might provide their own comfort.

I know that the tide will never stop, but I hope that it will at least weaken in strength over time.

A world without Chloe is wrong, but that’s the world I live in now. There won’t be a day goes by that I won’t be thinking of her.

Friday, July 11th, 2014

For Chloe

We all grieve in different ways. We all find solace and comfort in different places.

There can be solace in walking. There can be comfort in music. Tears. Rage. Sadness. Whatever it takes.

Personally, I have found comfort in reading what others have written about Chloe …but I know Chloe would be really embarrassed. She never liked getting attention.

Chloe must have known that people would want to commemorate her in some way. She didn’t want a big ceremony. She didn’t want any fuss. She left specific instructions (her suicide was not a spur-of-the moment decision).

If you would like to mourn the death—and celebrate the life—of Chloe Weil, she asked that you contribute to one or both of these institutions:

  1. The Oregon Humane Society. This is where Chloe found FACE, her constant companion.
  2. The Internet Archive. Chloe cared deeply about the web and digital preservation.

If you choose to make a donation; thank you. It’s what Chloe wanted.

I still can’t believe she’s gone.

Thursday, July 10th, 2014

Chloe

I first started hanging out with Chloe at An Event Apart Boston in 2011. We bonded over a shared love of The Go-Betweens amongst other things.

Chloe and me

It was very easy to be in her company. She was inspiring. Literally.

We became conference buddies. Whether it was Build, Brooklyn Beta, Indie Web Camp or New Adventures, we’d inevitably end up sitting next to each other. It didn’t matter how long it had been since we had last seen each other, it always felt like no time had passed at all.

Jeremy and Chloe at lunch Chloe & Jeremy Chloe and Jeremy attendees Brooklyn Beta Jeremy & Chloeamused by Al's stories

Jessica and I spent a day with Chloe and her dad Julius as they showed us around the real Williamsburg when we were in Brooklyn a few years ago. “The Jew Tour” Chloe called it. It was clear that Julius and Chloe had a wonderful relationship—they weren’t just father and daughter; they were best friends.

Jessica, Julius and Chloe

Chloe and I hacked together at Science Hack Day San Francisco last year. It was so much fun, and I know that Chloe found it very empowering. She even gave a demo in public, which was quite an achievement for her; I remember how terrified she was at the thought of just having to introduce herself at Indie Web Camp in Portland a few years back.

IndieWebCamp 2011

I won’t see Chloe again. Chloe killed herself.

When I heard the news, I couldn’t believe it. I still can’t believe it.

Chloe and I would sometimes communicate online—email, IM, DMs on Twitter—but it was never quite the same as when we were together. I chatted with her just last week. I knew she was sad. I knew that she had many regrets. But I had no idea that she was contemplating suicide.

Now I wonder if there’s something I could have said. Or worse, what if I did say the wrong thing?

I think it’s only natural to look for these kind of causal relationships. “If only I had done X, I could have prevented Y.” But I suspect that the truth is not as simple as that. Still those questions haunt me.

But there’s also comfort. Seeing the overwhelming messages of grief and loss makes me realise how many people cared for Chloe. Even if you only met her briefly, you couldn’t help but be bowled over by her.

Smart, creative, funny, beautiful Chloe Weil.

I want to say how much I’ll miss her, but the truth is that I don’t think I’ve really grasped that she’s gone. I just can’t believe it.

Wednesday, July 2nd, 2014

A new website for dConstruct 2014

dConstruct 2014 has a new website. Huzzah!

When I announced the original website two months ago, I was very, very excited about the line-up, but I was less excited about the design of the site itself. To be honest, it was a somewhat rushed affair. It did the job but it didn’t have much pizzazz. I had some design direction—colour, typography, texture—courtesty of Mikey, but I didn’t push it to do anything very interesting.

dConstruct original 320 dConstruct original 600 dConstruct original 768

So Mikey took some time to iterate and revise, and he came up with a gorgeous new design. I think this does a much better job of capturing the spirit of dConstruct.

As well as a revised colour palette and lusher textures, there was also opportunity to do something quite playful in the masthead. Making sites for our own projects always presents a nice opportunity to try out some whacky stuff that we might not get a chance to do on client work.

In this case, the plan was to play with the theme of this year’s dConstruct—Living With The Network—and use it as part of the visual design, literally networking up parts of the interface.

It was a nice chance for me to play around with canvas. But I didn’t dive into code straight away. I had a think about how I could add this an enhancement to the responsive layout.

My plan was to generate a canvas element under the existing elements in the header using z-index to keep them separated while maintaining the appearance of having everything connected up.

Sketching before coding

It worked out pretty well. But I wanted to push it further. How about making it an interactive element that responds to the user?

I know, I know. It’s very silly and frankly a bit wanky, but y’know, it felt like it would be nice and playful.

I had no idea how to do it though. At an internal code review here at Clearleft, I demoed what I had so far and asked for advice. The general consensus was that I should probably be using SVG rather than canvas for making interactive graphical elements. They’re probably right, but I distinctly remember learning about hit detection and mouse events in canvas during Seb’s excellent Creative JS workshop.

So I stuck with canvas and fiddled around with numbers until I got to something that felt lke it reacted nicely to hover events (or touch/clicks if hover isn’t available …or even if it is). requestAnimationFrame was a godsend when it came to getting smooth animations.

Have a play with it. It’s hard to miss. It’s not exactly a subtle easter egg.

The content of the site remains much the same. While I was disatisfied with the original visual design of the site, I’m still pretty chuffed with the copy.

One small change I made was to give the code of conduct its own page (and expand on it a bit). Previously it was included with terms and conditions but there was a good chance that it could’ve been overlooked there.

Anyway, I hope you like the new site. I think Mikey did a terrific job with the design and it was a lot of fun to put together …especially the silly wanky bit. The only slight disadvantage is that the page weight comes in slightly larger than the previous design. But I’ll keep optimising to see if I can shave off some bytes here and there.

Device testing dConstruct Device testing dConstruct

Oh, and you might notice one significant change on the home page. In addition to the speakers that are currently listed, there’s an addendum that reads “…and more”. That’s because the line-up for this year’s dConstruct, awesome as it is, is not yet complete. It’s going to get even better.

If you don’t have your ticket to this year’s dConstruct yet, what are you waiting for?

See you on September 5th.

Sunday, June 29th, 2014

#beepcheeks

Well, the second Responsive Day Out was a most excellent day out indeed. I figured it would be, what with that excellent line-up of speakers. Still, I was blown away by the quality of the talks—everyone over-delivered.

Stephen Sally Ida

Rachel Dan Inayaili

Oliver Kirsty Stephanie

Ethan

Once again, lots of people remarked on how much they liked the format of three back-to-back short talks followed by a group discussion. And needless to say, Ethan’s closing keynote was the perfect rousing finish to the day.

Jeremy panel beepcheeks panel Panel Jeremy and Ethan

Despite it being a rough’n’ready affair, everything went pretty smoothly. The only annoyance was the way the room got a bit hot and stuffy towards the end of the day’s proceedings.

(It’s ironic. For the past few years we’ve had a conference in the Corn Exchange at the end of June—Ampersand—and the weather always turned out to be pretty drab, which we moaned about. This year we finally got some weather and it made the conference a bit uncomfortable. You can’t win.)

All in all though, it was a terrific day of inspiration and thought-provocation. If you came along, thank you. If you didn’t make it, you can catch up with post-conference reports from these people:

Marc took some great pictures and Drew did his usual terrific work recording all the audio:

Stephen, Sally, Ida, chatting with Stephen, Sally, and Ida, Rachel, Dan, Yaili, chatting with Rachel, Dan, and Yaili, Oliver, Kirsty, Stephanie, chatting with Oliver, Kirsty, and Stephanie, and the one and only Ethan.

Here’s the RSS feed to put into your podcatching software of choice.

In the pub afterwards, quite a few people asked me if there’d be a third Responsive Day Out. My initial feeling is “no” …but then again, I thought that after the first one too. So who knows? Maybe there’s room for one more (but then it really would be the last one). We’ll see.

But in the meantime, there’s one event that is most certainly happening that you definitely don’t want to miss: dConstruct 2014.

As I said at the closing of Responsive Day Out 2, dConstruct is a very different kind of event. There won’t be any delving into CSS specs. But it’s the perfect event for any web designer or web developer who wants to take a step back and look at the bigger picture. And it’s ruddy good fun.

So if you liked Responsive Day Out, you’re going to love dConstruct. Get your ticket now.

Thursday, June 26th, 2014

Responsive Day Out activities

The sequel I’ve been eagerly awaiting—Responsive Day Out 2—is almost here! It kicks off tomorrow morning at 9am. I probably won’t be able to sleep much tonight, but that’s okay: I’ll need to be at the Corn Exchange in the Brighton Dome bright and early to help get everything set up.

I always love the atmosphere on the day before an event in Brighton. I like seeing the updates from friends far and wide as they arrive into town. Everything is coalescing nicely: speakers, attendees, and all-round lovely people are begin to show up and gather together.

If you’re coming to the conference, you’re in for a treat. There’s going to be a lot of brain food provided. There will not, however, be any food food provided. But don’t fret. There’s a nice long hour-and-a-half lunch break, and plenty of options for food nearby.

I recommended heading up the street to the weekly Street Diner at the top of Church Road.

Once the conference is done, we’ll head to the pub. No particular pub, just …the pub. There are plenty within cat-swinging distance of the venue.

If you’re still in Brighton on Saturday, there are some sporty events planned.

And if you’re already in town, there’s a Business of Web Design event tonight at 68 Middle Street.

See you tomorrow!

The telescope in the woods

I met Sandijs of Froont fame when I was in Austin for Artifact back in May. He mentioned how he’d like to put on an event in his home city of Riga, and I said I’d be up for that. So last weekend I popped over to Latvia to speak at an event he organised at a newly-opened co-working space in the heart of Riga.

That was on Friday, so Jessica I had the rest of the weekend to be tourists. Sandijs rented a car and took us out into the woods. There, in the middle of a forest, was an observatory: the Baldone Schmidt telescope.

Baldone Schmidt Telescope Baldone Schmidt Telescope

The day we visited was the Summer soltice and we were inside the observatory getting a tour of the telescope at the precise moment that the astronomical summer began.

It’s a beautiful piece of machinery. It has been cataloging and analysing carbon stars since the ’60s.

Controls Controls

Nowadays, the images captured by the telescope go straight into a computer, but they used to be stored on glass plates. Those glass plates are now getting digitised too. There’s one person doing all the digitising. It takes about forty minutes to digitise one glass plate. There are approximately 22,000 glass plates in the archive.

Archives Glass plates

It’s going to be a long process. But once all that data is available in a machine-readable format, there will inevitably be some interesting discoveries to made from mining that treasure trove.

The telescope has already been used to discover a dwarf planet in the asteroid belt. It’s about 1.5 kilometers wide. Its name is Baldone.

Tuesday, June 17th, 2014

Responsive Day Out 2: The Scheduling

Responsive Day Out 2 is just ten days away. If you’ve got a ticket, I’ll see you there. If you haven’t got a ticket, sorry; they’re all sold out. But despair not—some people who have tickets can’t make it and they’re looking to transfer theirs:

Matt Hill, Ali Springall, Marta Armada, and Matt Smith.

Either way, if you can make it to Brighton on Friday, June 27th, you’re in for a treat.

The location is the Corn Exchange at the Brighton Dome, a short walk from the train station. We’ll be using the main Dome entrance on Church Street. Just follow the geeks.

Bring along your ticket (either on paper or on a screen) or some form of ID. If you have a ticket and you can’t make it after all, feel free to transfer it to someone else: there’s a link in the email you got when you registered that will allow you to update the attendee details.

As with last year, the event will be a fast-paced affair, with each section chunked into groups of three back-to-back fast talks followed by a joint discussion with all three speakers.

I’ve grouped the talks into sections that are roughly thematically-related. The day will kick off with a section grouped around planning and process. Then there’ll be a more technology-focused section. After lunch, there’ll be a more big-picture, strategic section. At least one of the talks in each section will be based around a case study.

The one exception to the format is the final section of the day. That’s all Ethan, all the time. It will be Ethantastic.

The order might end up changing, but here’s what I’ve got planned:

Registration
Stephen
Sally
Ida
Chat with Stephen, Sally, and Ida.
Break
Rachel
Dan
Yaili
Chat with Rachel, Dan, and Yaili.
Lunch
Oliver
Kirsty
Stephanie
Chat with Oliver, Kirsty, and Stephanie.
Break
Ethan!
Chat with Ethan.
– ??:??Pub

Now, just to make sure that your expectations are in check, remember that this is a very rough’n’ready spit’n’sawdust kind of event. You won’t be getting a conference programme. You won’t even be getting a lanyard. Lunch is not provided (but Street Diner will be on that day—yay!). There is no pre-party. There is no after-party. And if you want a cup of tea or a coffee, it’ll cost ya.

Basically, every expense has been spared for this. There’s only aspect where we haven’t cut any corners, and that’s with the speakers. I can guarantee you a day of excellent talks.

See you next Friday!

Sunday, June 15th, 2014

Normal

Here in the UK, there’s a “newspaper”—and I use the term advisedly—called The Sun. In longstanding tradition, page 3 of The Sun always features a photograph of a topless woman.

To anyone outside the UK, this is absolutely bizarre. Frankly, it’s pretty bizarre to most people in the UK as well. Hence the No More Page 3 campaign which seeks to put pressure on the editor of The Sun to ditch their vestigal ’70s sexism and get with the 21st Century.

Note that the campaign is not attempting to make the publication of topless models in a daily newspaper illegal. Note that the campaign is not calling for top-down censorship from press regulators. Instead the campaign asks only that the people responsible reassess their thinking and recognise the effects of having topless women displayed in what is supposedly a family newspaper.

Laura Bates of the Everyday Sexism project has gathered together just some examples of the destructive effects of The Sun’s page 3. And sure, in this age of instant access to porn via the internet, an image of a pair of breasts might seem harmless and innocuous, but it’s the setting for that image that wreaks the damage:

Being in a national newspaper lends these images public presence and, more harmfully for young people, the perception of mainstream cultural approval. Our society, through Page 3, tells both girls and boys ‘that’s what women are’.

Simply put, having this kind of objectification in a freely-available national newspaper normalises it. When it’s socially acceptable to have a publication like The Sun in a workplace, then it’s socially acceptable for that same workplace to have the accompanying air of sexism.

That same kind of normalisation happens in online communities. When bad behaviour is tolerated, bad behaviour is normalised.

There are obvious examples of online communities where bad behaviour is tolerated, or even encouraged: 4Chan, Something Awful. But as long as I can remember, there have also been online communites that normalise abhorrent attitudes, and yet still get a free pass (usually because the site in question would deliver bucketloads of traffic …as though that were the only metric that mattered).

It used to be Slashdot. Then it was Digg. Now it’s Reddit and Hacker News.

In each case, the defence of the bad behaviour was always explained by the sheer size of the community. “Hey, that’s just the way it is. There’s nothing can be done about it.” To put it another way …it’s normal.

But normality isn’t an external phenomenon that exists in isolation. Normality is created. If something is perceived as normal—whether that’s topless women in a national newspaper or threatening remarks in an online forum—that perception is fueled by what we collectively accept to be “normal”.

Last year, Relly wrote about her experience at a conference:

Then there was the one comment I saw in a live irc style backchannel at an event, just after I came off stage. I wish I’d had the forethought to screenshot it or something but I was so shocked, I dropped my laptop on the table and immediately went and called home, to check on my kids.

Why?

Because the comment said (paraphrasing) “This talk was so pointless. After she mentioned her kids at the beginning I started thinking of ways to hunt them down and punish her for wasting my time here.”

That’s a horrible thing for anyone to say. But I can understand how someone would think nothing of making a remark like that …if they began their day by reading Reddit or Hacker News. If you make a remark like that there, nobody bats an eyelid. It’s normal.

So what do we do about that? Do we simply accept it? Do we shrug our shoulders and say “Oh, well”? Do we treat it like some kind of unchangeable immovable force of nature; that once you have a large online community, bad behaviour should be accepted as the default mode of discourse?

No.

It’s hard work. I get that. Heck, I run an online community myself and I know just how hard it is to maintain civility (and I’ve done a pretty terrible job of it in the past). But it’s not impossible. Metafilter is a testament to that.

The other defence of sites like Reddit and Hacker News is that it’s unfair to judge the whole entity based purely on their worst episodes. I don’t buy that. The economic well-being of a country shouldn’t be based on the wealth of its richest citizens—or even the wealth of its average citizens—but its poorest.

That was precisely how Rebecca Watson was shouted down when she tried to address Reddit’s problems when she was on a panel at South by Southwest last year:

Does the good, no matter if it’s a fundraiser for a kid with cancer or a Secret Santa gift exchange, negate the bigotry?

Like I said, running an online community is hardDerek’s book was waaaay ahead of its time—but it’s not impossible. If we treat awful behaviour as some kind of unstoppable force that can’t be dealt with, then what’s the point in trying to have any kind of community at all?

Just as with the No More Page 3 campaign, I’m not advocating legal action or legislative control. Instead, I just want some awareness that what we think of as normal is what we collectively decide is normal.

I try not to be a judgemental person. But if I see someone in public with a copy of The Sun, I’m going to judge them. And no, it’s not a class thing: I just don’t consider misogyny to be socially acceptable. And if you participate in Reddit or Hacker News …well, I’m afraid I’m going to judge you too. I don’t consider it socially acceptable.

Of course my judgemental opinion of someone doesn’t make a blind bit of difference to anybody. But if enough of us made our feelings clear, then maybe slowly but surely, there might be a shift in feeling. There might just be a small movement of the needle that calibrates what we think of normal in our online communities.

Sunday, June 1st, 2014

Notes from a small website

A week ago, I tweeted:

After a long weekend of coding, I’ve got a brand new section on my website.

http://adactio.com/notes/

But that tweet did not originate on Twitter. That tweet is a copy. The original is here.

To be honest, I’ve never been that pushed about having my own bite-sized updates hosted on my own site and syndicated out to Twitter. I’m much more concerned about my photos. Still, I thought it was pretty cool the way that Chloe, Aaron, Amber, and Barnaby have a “notes” section on their sites hosting the canonical URLs of their updates, so I thought I’d give it a shot too.

Michael Bester has written about his online homesteading process. You can also read—or listen toChloe’s process.

Creating a new section on my own site is pretty straightforward. My home-rolled CMS is really creaky and ropey but it gets the job done. The notes section is just another kind of post, same as journal, links, and articles. The tricky bit (for me) was figuring out how to post a copy to Twitter.

It was pretty clear which API method I needed to use. The hard part was all the OAuth stuff. I’ve never meddled with that kind of voodoo before.

I signed into dev.twitter.com and created an application called adactio.com. I’m given an API key and an API secret. This application will only never need to post as me, so I was able to take advantage of single-user OAuth to generate my access token and access token secret:

By using a single access token, you don’t need to implement the entire OAuth token acquisition dance.

Now I had the four pieces I needed to send with a status update:

  1. my consumer key,
  2. my consumer secret,
  3. my access token, and
  4. my access token secret.

I found a small PHP library that uses Andy’s OAuth code. Looking at the source code, I was able to figure out what I needed to send to Twitter. The OAuth class is doing all the hard work—my PHP code is fairly basic.

Imagine my surprise when it actually worked.

I fiddled around with my site’s crude templating system so that if I’m logged into my little CMS, I’m presented with a simple update form on the front page of adactio.com.

Speak your brains on Dribbble

When I type a note into that form and hit “post”, here’s what happens:

  1. I store the note in my own database.
  2. I send a copy to Twitter as a status update.
  3. Twitter returns a JSON object with info about the tweet I just created.
  4. I take the ID of that tweet and store it in my database along with the original note.

Having the ID of the copy on Twitter allows me to provide some Twitter-specific actions from my own site: reply, retweet, fave, etc.

Note on Dribbble

Okay, so now I’m posting to Twitter from my own site. Nifty! But what about receiving notifications from Twitter? If someone replies to, or likes, or favourites the copy of my note on Twitter, it would be nice to get notified about it on adactio.com.

This would be a really complex problem to attempt to solve for myself, but fortunately I don’t have to. Brid.gy is a magical tool written by Ryan Barrett that you can authorise to watch your Twitter profile. It will send a webmention back to the canonical URL on your own site whenever anyone replies to, or retweets or favourites a post.

Because I’ve already got webmentions on my site, Brid.gy worked straight out of the gate—a lovely demonstration of some small pieces, loosely joined.

Responses on Dribbble

Like I said, I wasn’t all that pushed about hosting my own short updates but now that I’m doing it, I’m really, really enjoying it. It feels good.

It feels good to be using my own website for “microblogging”. I know that’s a distasteful phrase but it’s a fairly accurate way of describing how I tend to use Twitter. My earliest tweets definitely feel like short blog posts.

Conversely, looking back on how I was blogging very early on, a lot of those short posts feel like tweets. So it feels good to bring those notes back to adactio.com.