denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
Denise ([staff profile] denise) wrote in [site community profile] dw_news2012-07-20 11:14 pm

Dreamwidth Update: 21 July 2012

Hello, Dreamwidth! Now that we have returned from tonight's maintenance (as I said on Twitter, we were all in the room where [personal profile] alierak and [staff profile] mark were doing the maintenance and we still kept trying to refresh things) and are reasonably convinced the site is not going to blow up any second (*knock wood*), I am pleased to announce that we have a lot of REALLY AWESOME THINGS to share with you.

This week we brought a number of our senior developers out here to Portland for OSCON, O'Reilly's annual conference about open source. (We were able to do this thanks to all y'all supporting us -- so thank you!) Not only has the conference let us attend a number of interesting sessions about technologies and standards that we're all super excited about applying to Dreamwidth, we've also taken the opportunity afforded by having so many of our people in the same space to get in some serious hack time on a lot of big projects we've all been working on.

Thanks to a lot of concentrated effort, we were able to get a few of them into "releasable" state -- as a first draft that we'll continue to refine and expand over time, of course, but we thought you'd like the chance to play with the first round. We'll be improving all of these things over time, as we also work to get some of the other long-term projects people have been hacking on this week released.

In the meantime ... well, I'll just go ahead and tell you about all the fun things we have in store.

Behind the cut:

* Development
* Surprise #1: Images
* Tales from the Conf #1
* Surprise #2: Icons
* Tales from the Conf #2
* Preview: Responsive Mobile Site
* A Word From The Head Office


In addition to the awesome amount of hacking done by those of us who are in Portland, we had a bunch of other changes, bugfixes, and additions. You can read the code tour for a closer look.

Highlights include improving the post-by-email function so that it's a bit smarter about figuring out what part is your .signature when you're using HTML email, adding CSS classes to styles for when entries and comments don't have a subject (so they can be easily styled by designers), clearer text in the inbox to make it more obvious when a notification is because a comment was edited, fixes to the Latest Things page to make the tag feed at the top more reflective of recent popular tags instead of all-time popular tags, fixing the weird bug in the beta update page where trying to post an entry after previewing it in Internet Explorer would cause a 404, and a whole slew of display bugfixes, and style improvements.

All of this code is live; we took the opportunity to do a code push along with tonight's maintenance.

Surprise #1: Images

We are pleased to announce the very first draft of the integrated Dreamwidth image hosting service! (I will now pause for all of you to stop jumping up and down in your chairs. Or, okay, that may just be me.)

This project took a ton of work, both backend and frontend, and [staff profile] mark and [personal profile] fu have been conspiring with their heads down and slaving over hot keyboards, after a bunch of feature design brainstorming with all of us throwing out ideas (and, at least in my case, brainstorming out loud for like a minute before realizing I'd talked myself out of whatever I'd just suggested, heh.)

This is "version .5" or so of image hosting. It doesn't have a lot of the frontend done yet, and we don't have a web-based upload form. (But we will, very soon!) We wanted to give you all a chance to play around with the basics and give us some feedback.

To post an image to your journal, either from your mobile phone or from your computer, you'll need to send it to us in an email post. All account levels can set up and configure email posting. Once you have email posting set up for your account, send an email with the image you want to post as an attachment to the email and the text of the entry (if any) you want to post in the body of the email, and it will appear in your journal.

Most of the eventual features aren't implemented yet -- there's a very limited image management page, you can't describe photos yet (this unfortunately does include not being able to specify the alt text, but we will add that very soon, I swear) and essentially all you can do is email an image in to your journal. (It'll get the same security level as you've set as the default security level for your whole journal, so if your journal has a minimum security of private, your images will be private; if your minimum security is public, your images will be public; etc. You can change an image's security once it's been uploaded, though.)

[staff profile] mark and [personal profile] fu have built a to-do list for next week and beyond and we're hoping to get from version .5 to at least version .9 or so in the next week or two. In the meantime, try it out and tell us what you think. You'll need to set up email posting first, and you can edit your files (to change security or delete files) once they've been uploaded. Everything else will be forthcoming as more awesomeness is developed.

Once again, this code is not yet fully functional. There will be bugs! There will be a lot of things missing! But we know you've been waiting for this for a long time, and we wanted to let you start playing with it early.

Tales from the Conf: #1

When you were in elementary school, did you have to write those "What I Did On My Summer Vacation" essays your first week back to school, or was that just my school being evil at me?

At any rate, I've asked the DW contributors who are here for the conference to write up bits to tell all y'all about what they've all been learning and working on all week. They have been remarkably tolerant of being assigned homework, and so I will be turning over bits of the news post to them:

[personal profile] alierak:
Coffee is yummy. Too much coffee is yucky. Properly caffeinated, I learned just enough about git to be dangerous, bent and twisted my brain into the shape necessary to understand our HTML cleaner, and wait, maybe that wasn't enough coffee after all. But now I know a little jQuery, more about mysql replication, and some new Perl tricks. For a minute there I actually understood some of Damian Conway's genius code that uses regexps to help people understand regexps, but then when I tried it nothing happened (I guess I already understand regexps). I finally realized it was time to start cutting back on the coffee when I found myself debugging the debugger and filing a bug report just for the fun of it, then studying Perl to see if it might actually be a Perl bug. A roomful of DW folks achieving this level of caff, um, concentration is a force (or probably several forces) to be reckoned with.

[personal profile] allen:
Dear Princess Celestia,

Over my summer vacation, I learned an important lesson about friendship.

I attended OSCON, and while there, went to some sessions that were immediately practical (jQuery, jQuery Mobile, HTML5, performance tuning, developer anti-patterns), some not so immediately practical (asynchronous event handling for when we add in real-time websocket-based updates, WebRTC for, umm, our video-conferencing app?), and...well, a bunch of Java stuff for $dayjob.  While not at the conference itself, though, I hung out with a bunch of really smart and talented folks, some of whom I'd met in person, and some of whom I'd only met online.  I spent a lot of time eating snacks and napping and doing $dayjob work (and looking at the new bookmarks code, which is coming along), while everyone else around added cool new features to the site.  

And that's the lesson that I learned--if you hang out with friends who are awesome, and they do awesome stuff while you're there, then you can feel good about the time that you spent.  Even if all you really do is nap and eat bonbons.

[personal profile] deborah:
Clearly I need a memory upgrade, because I can't personally remember anything that happened before I started eating this taco five minutes ago. But if I look at my schedule in the Official OSCON App™, I see that I learned about HTML 5, object-oriented Perl, jQuery, git, profiling memory usage in Perl, regular expressions, and ♥vim♥. (Seriously, some of the vim tricks I learned made me swoony.) In any case, some of it must have been written into my long-term memory, because somehow this week I have modified the site-schemed pages to HTML 5, forked the dw-free git repository, done baby's first code review, and assisted [personal profile] foxfirefey with her mobile port of the site using jQuery Mobile.

Wait, I didn't even attend the jQuery mobile session. How did this even happen?

Ooh, look, more tacos.

Surprise #2: Icons

So, you know how I've been promising y'all that I've been working on icon add-on packages for, like, six months, and y'all have been so very patient about it while I flail around and try to figure out what the heck I'm doing? I got to the point where I had to admit that the payment system had defeated me, and I asked [staff profile] mark really nicely to take over. (There was a point while he was working on it where the payment system almost defeated him, and he wrote it. The code for our payment system is really complex.)

But, I'm really pleased to announce that we, and by 'we' I mean 'Mark', with review help from a handful of the rest of us, are now indulging your craving for those tiny bits of journal jewelry. Paid, premium paid, and seed accounts can now buy extra icon slots in the Dreamwidth Shop.

You don't have to buy extra icons in packages of any particular number: you pick how many slots you want and add them to your cart. Buying extra icons is a one-time payment: once you've bought an extra icon slot, it's yours forever and ever (as long as you have the accompanying paid account, but if your account ever expires, we'll hold the slots for you and when you renew your account the slots will become active again). You can buy icons as a gift for somebody else. We haven't finished the code that will let you transfer extra icons from one account of yours to another, but we'll be adding that soon. (We just couldn't get to that part of the feature in time!)

We're kind of guessing about what each icon slot should cost. We've done some calculations and predictions, and based on those and our best guess about how things will shake out, it costs $1 (10 points) per extra icon. We reserve the right to raise that cost sometime in the future if it winds up costing us more (in which case anyone who bought icons at the current price will keep all the slots they bought, but future slots will cost the new price) or lower that cost if it winds up costing us less (in which case we will count up how much you've spent on buying icons for each account and give you the number of extra icon slots that would have bought you at the new, lower price).

In order to prevent the system from being totally overwhelmed, there is an upper limit of how many icons you can buy for a particular account. Currently, the icon limit is 500 icons total. (That means that the total of number of icons your account level gets + number of icons you've bought can't go over 500, not that you can buy 500 icons in addition to the number of icons your account level gets.) We may increase that in the future based on how usage shakes out.

This feature's been pretty well thought out (and we've tested it -- and already found and fixed a glitch that slipped in when we had our backs turned) but it's entirely possible there's a few bugs lurking. If you run into problems, open a support request in the Account Payments category and I'll get back to you as soon as I can. We're traveling tomorrow, so it might not be an immediate response, but if something goes wrong for you, we'll definitely make it good.

We hope that this will help ease some of those agonizing decisions over which icons you want to keep around! (We noticed that a few of you already managed to find this even without a formal announcement *g*)

Tales from the Conf: #2

[personal profile] exor674:
Over the course of this week I attended various talks on Perl-related [and a few non-Perl related things], including Damian Conway's talks about Features in Modern Perls, Regexp::Debugger (which, like [personal profile] alierak, I promptly found a bug in -- and reported it), and a talk about vim.

On Dreamwidth-related projects, I spent time working on the beginnings of fuzzy feed matching, as well as helping to review (verify that the patches are good before we insert them into our code), as well as teaching [personal profile] deborah how to review patches. More reviewers = very good.

[personal profile] fu:
There is nothing quite like grabbing a laptop and piling onto a couch with everyone else to hack on stuff. I've learned a lot of things this week about other DW contributors -- including who has the best singing voice at 3am in the morning (no I'm not telling).

But what I can say is that there's a lot of awesome stuff out there. HTML 5 is fantastic, and I've picked up a few nifty jQuery-related tricks which I hope to use to good (but not annoying!) effect to build more presents for you all. Along the way I fell in love with a new Perl module (Regexp::Debugger, hello there).

If you'll notice we have a couple nice presents for all of you :) You might have noticed we just turned on mobile photo hosting. [staff profile] denise lays it all out elsewhere in this entry, but I hope that you enjoy what we have far. (We'll soon have more!)

[personal profile] kareila:
I divided my conference time pretty evenly between Perl topics, contributor participation/diversity topics, and Other Things (a bit of jQuery, HTML5, Unicode, and Git).  My session notes are available in the [community profile] oscon community.  When not on site at the conference, I read sections of the Pro Git book and practiced with Git on the command line.  My latest vgifts code is almost ready for the next round of review and I am migrating my work in progress on vgifts to Github.

Being together with so many of the other contributors has really inspired all of us to finish things we were already working on and has sparked some new ideas as well.  I hope this is just the first of many times we will be able to come together like this!  Especially if we get the hotel with the outdoor hot tub again.  :)

Preview #1: Mobile Stuff

When I asked everybody to give me a little summary of what they're working on or a preview of their big project right now, [personal profile] foxfirefey delivered times ten! I thought I'd give her her own section of the post to explain what she's been working on, and let her show off some of the truly, truly attractive work she's managed to produce. So, turning it over:

So, on my summer vacation I got a refresher on data analysis in R and coding in jQuery, and introduced to good vi tricks, and an interactive Perl regex debugger.  But the most productive inspiration has come from my jQuery Mobile tutorial from Tuesday. Sitting through slide after slide of how important mobile has already become was pretty intimidating and scary because let's face it, Dreamwidth really falls down on mobile. People time and time again have asked for better mobile options and we haven't been able to provide them.  The thing about making apps for Dreamwidth is:

* The API needs a lot of work to get it up to a state where a client could really use it.  A lot of the people who could do the mobile app work are stymied by the poor API support.  We need to fix this, but it can be hard to get the ball rolling coordinating between backend devs and application devs.
* Everybody is very busy, and learning how to do native OS mobile development takes a lot of time investment, and sometimes money investment, too, for licenses and appropriate hardware.  And let's face it: it is very easy to make a bad app that does not perform well.  None of us are experienced mobile devs.
* There's not just one platform, there's several, and they each require their own apps.  That multiplies the amount of effort involved.

I'm sorry to say that the inspiration I got during OSCON wasn't for making native mobile apps, even though I know that they're better in a lot of ways.  HOWEVER.  I did learn a lot about something that could make a mobile version of the website much, much better for all devices.

Dreamwidth does currently have a mobile version of the site.  It's just that it's been pretty much untouched since, oh, 2006 (when it first originally appeared on LiveJournal), and is very much a creature of simpler device times: You can log in, you can make a post without even choosing an icon, and you can see a list of entries on your friends page with links that take you to the light schemed version of the entry page. (Which is not really optimized for small screens or touch screens; it is pretty much just like Tropospherical without the menus' style flair.)

My project inspired by OSCON is to make a mobile web version of the Dreamwidth site that's more up to snuff, using jQuery Mobile.  The advantages to doing this are:

* It can be accomplished quickly--I'm estimating a couple of weeks given the current rate.  (I have already implemented basic mobile reading and entry pages, and am working on comment pages; [personal profile] deborah is working on a profile page.  I have some work-in-progress screenshots of the reading page and an entry page if you want to see the current look.)
* It's easy to learn and simple to implement--the documentation for jQuery Mobile is very good, and it's based on technologies many of our devs are already familiar with: HTML, Javascript, and CSS.  Even babydevs would be able to help work on it.
* It will work for all mobile devices, without extra effort in making separate applications for each.
* It's accessible and degrades gracefully.

The mobile website isn't a replacement for native applications, but it will help the mobile experience greatly, so that you can interact with the site on your phone or tablet without feel like you're putting screws to your thumbs.

A Word From The Head Office

You saw many hints of some of the future awesomeness in everyone's conference reports, but this conference has gotten us totally jazzed up -- both because of awesome technologies we've been learning about, and because it's incredible to be in a room full of the people we work with regularly but never actually see. (Working solo gets lonely sometimes!)

Not everything that everybody was working on this week was finished in time to be included in this code push, of course -- there'll be additional stuff arriving over the next weeks and months, and we're hoping this conference trip will keep giving for a long time. (And I'm guessing everybody who's reading this will find some of the hints and teases in everyone's conf report truly tantalizing!)

I wanted to take a second to share a huge thank you, though -- and I know I speak for Mark, too, even though I'm writing this as he and [personal profile] alierak have their heads bent over their laptops as they watch our maintenance scripts run:

* Thank you to each of our contributors who took a week of their time (in many cases, by giving up some of their very limited vacation time at their day jobs!) to join us for the week.

* Thank you to everybody who has contributed to making Dreamwidth better -- not just the people who were here this week, and not even just the people who have ever contributed code, but everyone who has ever said "It would be awesome if the site did this" and then thought, hey, I'll tell them about it and maybe they'll be able to do it!

* Thank you to everybody who's supported us by paying for their accounts, because it's your payments that enabled us to have the budget to fund this trip. We've been able to do a lot more to support our volunteer developers this year than we've ever been able to do before, and it's an amazing feeling to be able to invest in the people who have been giving us so much of their time and in the site we all love.

I'll leave you all with my own version of What I Did On My Summer Vacation:

I learned that git is a heck of a lot easier to understand when it's explained and demonstrated with Tinkertoys. I learned that if you are nice to the hotel staff, and offer them slices of your pizza, they will let you colonize the lobby with a crew of 12 people and a whole lot of laptops every night straight for a week. I learned that it will never not be awesome when someone catches sight of your nametag and says, "Oh, you're from Dreamwidth! You guys are awesome!" I learned that my wife [personal profile] sarah is amazing at organizational details (but I knew that already). I learned that when you see a branded rubber duckie as a giveaway in the expo hall, you should grab one, because it will amuse your team for hours in the hot tub. I learned that you can motivate people a whole lot by offering hand-knit socks in exchange for fixes for particularly annoying bugs.

I learned that when you and your co-founder are sitting on beanbags in the conference center, kind of exhausted and a little overwhelmed, it perks you back up like whoa to realize that three or four of your contributors are sitting on the beanbag next to you and quietly plotting ways to make the mobile site awesome. I learned that when you say, "Somebody should try again to pull together a Perl Women group!", the answer you're going to get is, "Yes! You really should! Tell me when you get it running!" I learned that OpenHatch is even more awesome than I thought, and I already thought they were pretty awesome. I learned that no matter which sessions I plan on attending, I will never make it to more than half of the ones I intended on attending, but the ones I go to instead, totally on a whim, will usually wind up being fascinating. I learned that you can never have too much caffeine available for fueling hack nights, and no matter how strong your intentions of getting to bed before midnight are, it isn't going to happen. I learned that even when you are watching the sysadmins doing the maintenance that took the site down, you will still try to load a page on the site at least half a dozen times.

I learned that we have the awesomest, most passionate, most creative, most clever contributors in the world, and that no matter how many times I think I've gotten used to being a part of this whole wild ride, I will still have moments of being overwhelmed, humbled, amazed, and wildly in love with this thing we've built and all the people who've helped to build it.

In conclusion, I LOVE YOU ALL.


More exciting stuff will be coming over the next weeks and months. As always, if you're having problems with Dreamwidth, Support can help you; for notices of site problems and downtime, check the Twitter status page; if you've got an idea to make the site better, you can make a suggestion.

We'll see you soon for our next update!
inthetatras: Dancy Flammarion. (alabaster - Dancy)

[personal profile] inthetatras 2012-08-21 04:50 pm (UTC)(link)
Haha, oh man. I remember when there were only three icon slots for basic accounts over there. Geez, that was what, ten years ago? I think. Either way, I would fully agree that the people who want more icon variety are the ones using it for RPing. That's the case with most of the people I know that care about icons.