<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="http://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2008-04-22:10</id>
  <title>Dreamwidth Development</title>
  <subtitle>Dreamwidth Open Source Development</subtitle>
  <author>
    <name>Dreamwidth Open Source Development</name>
  </author>
  <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom"/>
  <updated>2012-05-17T16:16:04Z</updated>
  <dw:journal username="dw_dev" type="community"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:117150</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/117150.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=117150"/>
    <title>Rough outline of workflow -- aka let's talk</title>
    <published>2012-05-17T15:45:34Z</published>
    <updated>2012-05-17T16:16:04Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>10</dw:reply-count>
    <content type="html">&lt;p&gt;I've been reading up on Git, trying to figure out how to document a process that works for everyone, and it just isn't working. All I know is how I want to do things, and I can only guess what would work best for everyone. So instead of my sitting here writing down guidelines, which might get set in stone even if they don't really work for you, let's actually talk about it, and then document the hell out of what we decide on.&lt;/p&gt;
&lt;p&gt;Big bold critical disclaimer: If you are uncomfortable with really vague instructions and a process that might break at any point, just hang back and wait! This is the "We need people to try doing this so we know where the major stress points are" step.&lt;/p&gt;
&lt;p&gt;Other disclaimer: We'll document what seems a reasonable way to do things to make it easier for anyone coming in, but that doesn't mean you need to stick to the script strictly. You can manage your code on your end however you'd like -- so long as you send that pull request!&lt;/p&gt;
&lt;p&gt;Useful links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://help.github.com/"&gt;github:help&lt;/a&gt; -- check out the beginner and intermediate sections, as well as further git resources. I don't think we'll need anything from the other sections, until we run into specific issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://qq.is/article/git-flow-on-github"&gt;Git flow&lt;/a&gt; -- abstraction on top of Git to make the most common workflow more convenient&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/117150.html#cutid1"&gt;here's what we need to figure out&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=117150" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:116811</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/116811.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=116811"/>
    <title>Workflow overview</title>
    <published>2012-05-11T01:20:45Z</published>
    <updated>2012-05-11T05:21:41Z</updated>
    <category term="project management"/>
    <dw:security>public</dw:security>
    <dw:reply-count>21</dw:reply-count>
    <content type="html">&lt;p&gt;After a bunch of discussion, we've decided to move from Mercurial to Git. Mercurial and Git are different version control systems. If you're not sure what that is, they basically manage code and the history of how the code has changed.&lt;/p&gt;
&lt;p&gt;One &lt;em&gt;big&lt;/em&gt; reason for using Git is Github. Github is a service that hosts code, and provides web-based tools to manage commits and reviews. This will make it a lot easier to work collaboratively, and simplify the process of submitting patches. The changeover may be a bit of a pain, but we will work to make it as easy as possible!&lt;/p&gt;
&lt;p&gt;We've also decided to simplify our development environment. Instead of having the $LJHOME directory contain a bunch of repositories that need to be synced and copied around -- no one has ever understood this setup without a lot of explaining and re-explaining -- we will just have one set of directories. This means we can get rid of cvsreport.pl, which is the script that does the syncing between the $LJHOME directory and the repositories within it.&lt;/p&gt;
&lt;p&gt;Nothing will change yet, but I thought (and &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://denise.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; agreed) it might be a good idea to post a very basic overview of how the process will be changing.&lt;/p&gt;
&lt;p&gt;I'm still banging on the workflow; right now I'm just working with a couple of the more experienced devs so we can get a general idea of what needs to be done. We'll invite more people for a test run once to iron out the more fiddly bits once we have a list of steps to try.I expect we'll have to adjust again after people have tried it out for real.&lt;/p&gt;
&lt;p&gt;Don't worry! Nothing is going to happen without a lot more in the way of information and tutorials and explanations, but here is a very high-level overview.&lt;/p&gt;
&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/116811.html#cutid1"&gt;diagrams and details within&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=116811" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:116511</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/116511.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=116511"/>
    <title>dw_dev @ 2012-05-07T19:19:00</title>
    <published>2012-05-07T12:07:46Z</published>
    <updated>2012-05-07T12:07:46Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>12</dw:reply-count>
    <content type="html">I did a quick run through of a changeset submission process with &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://exor674.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://exor674.dreamwidth.org/'&gt;&lt;b&gt;exor674&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, one for Mercurial and one for Git.&lt;br /&gt;&lt;br /&gt;Assumptions:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;    &lt;li&gt;pulling from the dev branch back to stable is roughly equivalent between Git and Mercurial, or is easy enough to work around on the committer side, so this is not shown here.&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;we want to move away from asking for patches, to pull requests which include more context&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;we need to concentrate on the branching workflow. We will encourage branching even for small bugfixes or feature development, to make it easy for devs to pick up a different bug once they have submitted a pull request for what they are currently working on.&lt;br /&gt;&lt;br /&gt;    This is particularly important because we get devs that happily submit their first patch, and then get frustrated trying to clean up their repo when working on their second. This may also be useful when we discover that tweaks need to be done on review. Instead of doing: &lt;br /&gt;        &lt;ol&gt;&lt;br /&gt;            &lt;li&gt;clean up old/current work&lt;br /&gt;            &lt;li&gt;grab patch from zilla or a saved file and reapply&lt;br /&gt;            &lt;li&gt;do tweaks&lt;br /&gt;            &lt;li&gt;generate a new patch containing the original patch + changes requested&lt;br /&gt;        &lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;    We might do:&lt;br /&gt;        &lt;ol&gt;&lt;br /&gt;            &lt;li&gt;save current work on current branch&lt;br /&gt;            &lt;li&gt;switch to previous branch&lt;br /&gt;            &lt;li&gt;do tweaks&lt;br /&gt;            &lt;li&gt;submit pull request again, with the tweaks as a separate commit&lt;br /&gt;        &lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;    Thus the emphasis on branching in this run through.&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;we're trying to analyze the core features to determine whether they can work the way we need them to, so we've left github and bitbucket out of the equation (except as ways to make the code public)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/116511.html#cutid1"&gt;mercurial workflow using bookmarks&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___2" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/116511.html#cutid2"&gt;Git workflow using git branches&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___2" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Summary of what we found:&lt;br /&gt;&lt;br /&gt;    &lt;ul&gt;&lt;br /&gt;        &lt;li&gt;When using Mercurial bookmarks, we ran into an odd(?) issue where we lost track of where we were branching from (what would, in git, be the branch "master"). I'm assuming this is a bit of a workflow thing, and we can work around by creating the new bookmark upstream or master, so we could get back to the point in our repo before we started making any changes&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;Same issue, but this time from the committer side? or, since we've merged at this point, and won't need to eep track of bookmarks, perhaps less of an issue?&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;What am I doing when I pull then remove the bookmark? I ... managed to merge, right? That's what I did?&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;Commit messages are now an issue. We standardized around a commit format containing the bug id, commit message, and patch author and enforced it by having the committer supply the commit message.&lt;br /&gt;&lt;br /&gt;        Now, we'll either need to enforce a strict policy on commit messages before accepting the commit, or have the committer amend the commit messages beforehand. Other options are to make the changelog hook smarter (detect things of the form "Bug #"?), use a "changelog_bot" for all commits. We might also want to look into having the committer sign off the commit.&lt;br /&gt;&lt;br /&gt;        *Finally* this might become a moot point, depending on what's available to us from github/bitbucket that will let us put stuff into the changelog community.&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;need to determine what happens if you try to amend someone's commit in Mercurial by running it through MQ in order to fit guidelines above *points up*. At a guess, we'd end up with a dangling commit that would need to be stripped out of the submitting dev's repo, because the changeset hashes would no longer match&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;git index! oh git index. You might be a pain. The question is, are you a pain that can be hidden away?&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;it's much easier grokking branches, IMO, than bookmarks, because there's never any risk of forgetting where "master" is.&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;git lets me do a merge commit, in order make sure that the bug number is mentioned in a related commit. *Might* be a bit of a moot point if we end up doing a rebase instead of a merge&lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=116511" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:116460</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/116460.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=116460"/>
    <title>Process documentation needed: automated test suite</title>
    <published>2012-05-06T07:08:58Z</published>
    <updated>2012-05-06T07:08:58Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>10</dw:reply-count>
    <content type="html">&lt;span style='white-space: nowrap;'&gt;&lt;a href='http://crschmidt.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://crschmidt.dreamwidth.org/'&gt;&lt;b&gt;crschmidt&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; pointed out in &lt;a href="http://dw-dev-training.dreamwidth.org/34800.html"&gt;his bug walkthrough&lt;/a&gt; that the process of running the automated test suite is not very well documented! And I agree; I know I don't run the tests when I'm patching things since I don't really know much about it, and I don't contribute tests along with my code because I actually don't know how to write them or what they should do. I am probably not the only one! (The only thing I know about the test suite is that you shouldn't run it in production because it does weird and wonky things to the database.)&lt;br /&gt;&lt;br /&gt;I do know that our test suite coverage is not extensive at all, and we've talked before about moving to a more test-driven devlopment mindset. If anybody wanted to write up some documentation on the Wiki about both how to run the tests (and what you should look for) and how to write new tests (and when you should), that would be &lt;em&gt;awesome&lt;/em&gt; and I would love you forever. (Well, I mean, I love you all forever already. But I'd love you &lt;em&gt;more&lt;/em&gt; forever.)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=116460" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:116196</id>
    <author>
      <name>vlion</name>
    </author>
    <dw:poster user="vlion"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/116196.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=116196"/>
    <title>hg branching</title>
    <published>2012-05-04T05:53:56Z</published>
    <updated>2012-05-04T05:53:56Z</updated>
    <category term="mercurial"/>
    <dw:security>public</dw:security>
    <dw:reply-count>16</dw:reply-count>
    <content type="html">per fu and pau's requests, A POST ON BRANCHING.  [insert meme with a post on top of a tree branch]&lt;br /&gt;&lt;br /&gt;hg branching falls into one of several models:&lt;br /&gt;&lt;br /&gt;- clone branching&lt;br /&gt;&lt;br /&gt;clone branching is where to make a line of development you execute an `hg clone`, do your development on that copy, and then push/pull back to the mainline. This has the advantage of being the simplest; it also has the disadvantage of being easy to mislay a given clone or to not correctly annotate what that clone does with a rename.  It may also be very funky to get this to work right for a DW dev environment if I remember how those work right.&lt;br /&gt;&lt;br /&gt;- bookmark branching&lt;br /&gt;&lt;br /&gt;bookmark branching is like git branching. git branching is like hg bookmarks. (circular reference. :-) ) You have a name that you have to manually push/pull. Commits usually advance the name of the bookmark as you might expect. These branches can be deleted. So in order to create a branch...&lt;br /&gt;&lt;br /&gt;`hg bookmark vlion_sweet_branch`, and then do your development on it, merging as needed from your mainline branch (which should also be bookmarked to be your stable/test branching).   Push out to the server with hg push -B vlion_sweet_branch. They do have to be manually pulled, which hg tends to be a bit reluctant to about exposing to the other users. It never says, "Here are teh new bookmarks!"&lt;br /&gt;&lt;br /&gt;Bookmarks can be deleted, which is good if you don't want bookmark names cluttering up your namespace.&lt;br /&gt;&lt;br /&gt;You only need 1 repo to do development on with bookmarks; switching between bookmarks is as simple as `hg up bookmark_name`.&lt;br /&gt;&lt;br /&gt;- named branching&lt;br /&gt;&lt;br /&gt;Named branches are what I use at $DAY_JOB. They are permanent. They are very similar to bookmarks, but merging is a little different; the new branches don't actually merge (I can create graphs if wanted). Named branches do get sent up to the server and automatically downloaded.&lt;br /&gt;&lt;br /&gt;These are more appropriate in situations where you want to track what happened when and where.&lt;br /&gt;E.g., release is a named branch I frequently use. `Testing` is another.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;One approach that seems like a good idea at this time to me is to have a `release` branch, a `test` branch, and a `dev` branch.  Patches are developed on bookmarks referencing bug#, splitting off of `dev` until they are done... when the patch is basically done, it's merged into dev. Then when a push seems good, it gets merged by Fu (or other project lead person) into `test` and whatever tests she thinks is good are run... if it's still good, it gets merged to release and is live... if it's bad, then more work on dev is done until it's fixed.&lt;br /&gt;&lt;br /&gt;YMMV, and "it seemed like a good idea at the time" doesn't always work out in practice. This sort of approach is fairly enterprise in how it is designed, and might not fully flow with how DW development works.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;~V'lion&lt;br /&gt;&lt;br /&gt;P.S.,&lt;br /&gt;I'm going to be functionally unavailable until Monday to answer questions (travelling), but I will do my best to answer all questions, even if it's a delayed answer.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=116196" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:115913</id>
    <author>
      <name>Katie S</name>
    </author>
    <dw:poster user="tajasel"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/115913.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=115913"/>
    <title>Code Tour - 12th March to 1st May</title>
    <published>2012-05-03T23:08:06Z</published>
    <updated>2012-05-03T23:08:06Z</updated>
    <category term="code tour"/>
    <dw:security>public</dw:security>
    <dw:reply-count>13</dw:reply-count>
    <content type="html">Whew, my first code tour!  This broke my mind a bit in places, and I think I mostly failed at the "being funny" part, but I hope it helps you understand what Dreamwidth has been up to!&lt;br /&gt;&lt;br /&gt;&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/115913.html#cutid1"&gt;28 bugs&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aaand that's it for now.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=115913" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:115618</id>
    <author>
      <email>smitty@gmail.com</email>
      <name>Mark Smith</name>
    </author>
    <dw:poster user="mark"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/115618.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=115618"/>
    <title>The death of cvsreport.pl</title>
    <published>2012-05-01T06:52:40Z</published>
    <updated>2012-05-01T06:52:40Z</updated>
    <category term="project management"/>
    <dw:security>public</dw:security>
    <dw:reply-count>16</dw:reply-count>
    <content type="html">All the talk about version control systems is great, but when &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://fu.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and I sat down tonight to talk about the feedback and figure out where to go next, we realized that there's one thing that really complicates the whole situation horrendously: cvsreport.pl and overlaid repositories.&lt;br /&gt;&lt;br /&gt;Therefore, it should die. This should happen before we go down the garden path to version control nirvana, so we're going to tackle this. It started tonight and will continue to happen until we get it taken care of.&lt;br /&gt;&lt;br /&gt;The plan right now:&lt;br /&gt;&lt;br /&gt;* Any modules that are on CPAN should be installed via CPAN or your local package manager. We should not be distributing files locally from random repositories. Dependency management is a burden we should offload where possible. Since we already have bin/checkconfig.pl which people should be running, we can use that to ensure people have the packages needed installed.&lt;br /&gt;&lt;br /&gt;* External programs like Perlbal, MogileFS, ddlockd, etc should be managed separately. Since most of them aren't even necessary, we can just offload this to the person who wants to install a production quality system. (And honestly, with the advent of &lt;a href="https://github.com/jordansissel/fpm"&gt;fpm&lt;/a&gt; this isn't a huge burden, building packages is &lt;em&gt;so incredibly easy&lt;/em&gt; now.)&lt;br /&gt;&lt;br /&gt;* Small utility files that were in various repositories (the s2 stuff, miscperl, etc) we will just fold in to dw-free. It adds very little burden to us and it makes things more sane.&lt;br /&gt;&lt;br /&gt;* ssldocs should just mirror htdocs. We can't see any harm in allowing all URLs to be valid SSL URLs. This is a necessary step before we roll out an "ssl-everywhere" option for people, so we should just bite the bullet and do it.&lt;br /&gt;&lt;br /&gt;This does not solve the problem of dw-nonfree yet. We have some ideas, but those depend on if we end up going with git or hg or whatever. For now we're going to put that off to the end and solves the above dependency issues first and then we'll go from there.&lt;br /&gt;&lt;br /&gt;Comments, questions?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=115618" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:115250</id>
    <author>
      <name>deborah</name>
    </author>
    <dw:poster user="deborah"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/115250.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=115250"/>
    <title>Git, Mercurial, github, bitbucket</title>
    <published>2012-04-29T18:54:10Z</published>
    <updated>2012-04-29T18:54:10Z</updated>
    <category term="mercurial"/>
    <dw:security>public</dw:security>
    <dw:reply-count>50</dw:reply-count>
    <content type="html">I want to spin off a new post from &lt;a href="http://dw-dev.dreamwidth.org/115139.html"&gt;the log of last night's IRC developer meeting&lt;/a&gt;. The topic of GitHub came up in the meeting, and some concerns with that idea have been raised in the comments of the previous post. &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://vlion.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://vlion.dreamwidth.org/'&gt;&lt;b&gt;vlion&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s &lt;a href="http://dw-dev.dreamwidth.org/115139.html?thread=921795#cmt921795"&gt;concerns largely address the difference between mercurial and git&lt;/a&gt;, whereas &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://www.dreamwidth.org/profile?user=karelia'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://www.dreamwidth.org/profile?user=karelia'&gt;&lt;b&gt;karelia&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s concerns also address that difference but &lt;a href="http://dw-dev.dreamwidth.org/115139.html?thread=922051#cmt922051"&gt;touch incidentally on the hypothetical benefit of working in the more public environment of Github&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was talking to &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://allen.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://allen.dreamwidth.org/'&gt;&lt;b&gt;allen&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and he pointed out that there are really two different issues in play here, because we can go to a shared, public, relatively popular, FLOSS-friendly environment without ever leaving mercurial, namely, &lt;a href="https://bitbucket.org/"&gt;Bitbucket&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'd actually say there are three questions:&lt;ol&gt;&lt;li&gt;Are there benefits to git over mercurial, and if so, are those benefits enough to outweigh the cost of switching to a new source control system?&lt;/li&gt;&lt;li&gt;Would we like to move our source control management to a public, shared, FLOSS-friendly environment? If so, why? Do we think it would be more friendly to our current developers, do we think it would make it easier to bring in new developers, some combination of the two, or something else? &lt;/li&gt;&lt;li&gt;If we want to move to a shared environment, do we feel that there is a strong reason that it should be  Github? What are those reasons, if so? If we think  git is worse than mercurial, but we do think there's a benefit to moving to Github, which reason should prevail? &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Actually, we should probably add a fourth question, which is "would any of our needs be better served by using mercurial more in the fashion for which it was intended?"&lt;br /&gt;&lt;br /&gt;Keep in mind when I write these questions that I use github for other projects and like it,and I have never used mercurial intensely enough to have strong feelings about it either way. Personally I fell in love with Perforce at an early date and find all other VCS systems to be it pale yet free imitations. But I do think that if we make a switch like this, these are the questions we need to answer.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=115250" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:115139</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/115139.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=115139"/>
    <title>April irc dev meeting log</title>
    <published>2012-04-29T07:35:24Z</published>
    <updated>2012-04-29T07:35:24Z</updated>
    <category term="meetings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>27</dw:reply-count>
    <content type="html">Well, I managed to sleep through the meeting and &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://mark.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; was fixing the database comment limits problem, so the meeting started a little late. (It's a good thing we're cute?) &lt;br /&gt;&lt;br /&gt;Here's the log, lightly redacted to remove discussion of personal and offtopic stuff (and to remove irc administrivia like joins and parts). We'll do this again in a few weeks!&lt;br /&gt;&lt;br /&gt;&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/115139.html#cutid1"&gt;Meeting log&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=115139" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:114742</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/114742.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=114742"/>
    <title>dw_dev @ 2012-04-26T20:23:00</title>
    <published>2012-04-27T00:29:43Z</published>
    <updated>2012-04-27T00:29:43Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Applications to attend &lt;a href="http://dc.adacamp.org/apply/"&gt;AdaCamp DC&lt;/a&gt; are now open! All y'all who are in/near DC should definitely attend. (It's an "application" in that the Ada Initiative will be doing basic screening to make sure people have a basic level of participation in open stuff and are not likely to be disruptive of the feminist goals.) &lt;br /&gt;&lt;br /&gt;I will be there, and the rest of y'all should be too!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=114742" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:114467</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/114467.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=114467"/>
    <title>April irc dev meeting</title>
    <published>2012-04-26T20:57:45Z</published>
    <updated>2012-04-26T20:57:45Z</updated>
    <category term="meetings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>8</dw:reply-count>
    <content type="html">The Doodle poll has spoken, and the time that works for the most people unfortunately doesn't work for &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://mark.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, so we'll be using the second-most-popular time:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Saturday 28 April 9PM EDT - 11PM EDT&lt;/b&gt; (1AM GMT - 3AM GMT)&lt;br /&gt;&lt;br /&gt;My apologies to those of you in EU timezones; our next meeting will be scheduled to be more convenient for y'all!&lt;br /&gt;&lt;br /&gt;The meeting will begin precisely at 9PM EDT in irc (irc.freenode.net, channel #dreamwidth-dev) and will definitely run for at least two hours (if discussion is going well, we may continue a little past the 11PM end time). The meeting will be logged and logs will be publicly posted (lightly edited) to &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://dw-dev.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/comm_staff.png' alt='[site community profile] ' width='16' height='16' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dw-dev.dreamwidth.org/'&gt;&lt;b&gt;dw_dev&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; afterwards.&lt;br /&gt;&lt;br /&gt;If you have anything in particular you'd like to put on the agenda for discussion, leave a comment. Otherwise, the agenda will be "let's all talk about awesome things we are doing".&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=114467" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:114225</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/114225.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=114225"/>
    <title>YAPC::NA</title>
    <published>2012-04-25T05:11:58Z</published>
    <updated>2012-04-25T05:25:23Z</updated>
    <category term="sponsorships"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">YAPC::NA is 30 registrations away from selling out (according to a blog post earlier today), eep! If you're planning to come and haven't contacted me about it yet, please register yourself ASAP and we'll reimburse you.&lt;br /&gt;&lt;br /&gt;EDIT: Going by my registration #, there's only 6 slots left, and the pre-conference workshop has sold out. I'm so sorry, I didn't realize the conf was so limited-registration -- I'll see if I can find something comparable later in the year!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=114225" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:114119</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/114119.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=114119"/>
    <title>April Dreamwidth dev irc meeting</title>
    <published>2012-04-21T21:51:14Z</published>
    <updated>2012-04-21T21:51:14Z</updated>
    <category term="meetings"/>
    <dw:security>public</dw:security>
    <dw:reply-count>7</dw:reply-count>
    <content type="html">We've spoken in the past about having semi-regular dev meetings in irc, where everybody who's interested can gather in #dreamwidth-dev and have a conversation about what we're working on, what our priorities are, what interesting things have happened, what problems we've run into that others can learn from, what questions we've had itching at us that haven't been answered yet, what kind of help we can use, help-wanted requests for for a pair programmer/UI specialist/frontend person/backend person/someone to crack the whip/someone to bounce ideas off of/etc. (Not to mention, "let's bug &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://denise.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; about stuff we need that hasn't been done yet"!)&lt;br /&gt;&lt;br /&gt;&lt;span style='white-space: nowrap;'&gt;&lt;a href='http://fu.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://mark.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user_staff.png' alt='[staff profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, and I have all had periods of feeling really isolated and disconnected from each other and from you guys lately, so we're going to give this a try on a pilot basis. 'Staff meetings' will be held every few weeks. We'll log the channel during the meeting, and post the logs afterwards, so those who can't make a particular meeting or those who can't/don't use irc can still get the information. Because of the international nature of our contributor base and the fact that many of us have weird sleep schedules, the meeting times will rotate: if the times for meeting #1 are more convenient for EU people, we'll try to make the next meeting more convenient for US people and the one after that for AU people, etc.&lt;br /&gt;&lt;br /&gt;Anyone who does any kind of DW work is welcome -- this isn't dev-&lt;em&gt;specific&lt;/em&gt;, but at first we'll definitely be dev-&lt;em&gt;focused&lt;/em&gt;, since we have a few ideas we'd like to start exploring for the dev process and we'd like to encourage more collaboration and team programming.&lt;br /&gt;&lt;br /&gt;For the first meeting, I've picked a few random-ish times next weekend to try to find one that will work for the majority of people. If you are interested in attending, please fill out the Doodle poll linked below, with your DW username and the times that you would be available to attend! (If you have accessibility problems with it, let me know privately and I'll add your information for you -- I don't know how Doodle is on accessibility.) The poll has 9 separate times, chosen more-or-less at random/on a whim with a US-based audience in mind this time. By default the poll "accordion-collapses", so hit the accordion fold to expand it and get all the times. &lt;br /&gt;&lt;br /&gt;Please vote by Tuesday; we'll set the time then. "Yes" means you'd definitely be able to attend at that time, "No" means you'd definitely not be able to attend at that time, and "(Yes)" means you might be able to attend but it would be inconvenient for you. The times should &lt;em&gt;theoretically&lt;/em&gt; update to account for timezones (going by your IP and the reported geolocation thereof) but if that doesn't work for you, the poll was created in EDT; to tell if your timezone is being accurately set, the first option is 27 April at 8PM EDT. You don't need a Doodle account to answer the poll.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://doodle.com/k8tm8f6rrpxgvszs"&gt;Fill out Doodle poll&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=114119" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:113891</id>
    <author>
      <name>Cocoa</name>
    </author>
    <dw:poster user="momijizukamori"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/113891.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=113891"/>
    <title>Some tools for S2 patching</title>
    <published>2012-04-19T06:05:37Z</published>
    <updated>2012-04-19T06:39:01Z</updated>
    <category term="journal styles"/>
    <category term="scripts"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">...mostly because as anyone who gets all the bugzilla and/or style notifs knows, I did a lot of that this week *g*&lt;br /&gt;&lt;br /&gt;First, preview images - I'd been doing them with Ubuntu's screenshot utility and photoshop, which is 1) really slow and 2) doesn't really adequately strip and compress images. So! Enter &lt;a href="https://chrome.google.com/webstore/detail/cpngackimfmofbokmjmljamhdncknpmg"&gt;Screen Capture&lt;/a&gt; for Google Chrome, which I've been using with the 'full page' setting, and set to skip pop-ups and save straight to a temp image directory, where I can then rename the screenshots. After that, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://geekosaur.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://geekosaur.dreamwidth.org/'&gt;&lt;b&gt;geekosaur&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://exor674.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://exor674.dreamwidth.org/'&gt;&lt;b&gt;exor674&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; (with a little sideline ImageMagick input from &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://www.dreamwidth.org/profile?user=tamouse_'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://www.dreamwidth.org/profile?user=tamouse_'&gt;&lt;b&gt;tamouse_&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; helped me write this handy little shell script, to process all the pngs in the directory you run them on - it resizes them, crops them, strips color profiles, and indexes them.&lt;br /&gt;&lt;br /&gt;&lt;textarea cols="50" rows="10"&gt;#!/bin/bash
for f in *.png; do
    convert -resize 150x114^ -gravity north -extent 150x114 -sharpen 25 +dither -type Palette "$f" png8:"out.png" &amp;&amp;
        pngnq -n 256 -s 1 -f out.png &amp;&amp;
        pngcrush -c 3 -bit_depth 8 -rem alla -brute out-nq8.png "$f" &amp;gt;/dev/null &amp;&amp;
        rm out.png out-nq8.png
done
&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;I've been using it on my own machine, as I run Ubuntu, but I believe all the appropriate packages are now on the Dreamhack server, too, for server-side use.&lt;br /&gt;&lt;br /&gt;Second, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://rb.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://rb.dreamwidth.org/'&gt;&lt;b&gt;rb&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; posted &lt;a href="http://dw-dev.dreamwidth.org/106347.html"&gt;a handy little script for sorting properties for color themes and generating appropriate headers&lt;/a&gt;. I updated it to match our current formatting for files, add sorting for a few more properties, and output more verbose instructions on what to do next at the end.&lt;br /&gt;&lt;br /&gt;&lt;textarea cols="50" rows="10"&gt;
#!/usr/bin/perl
#
#

my ( $theme_human, $author_name, $layout_human, $is_nonfree ) = @ARGV;

sub diehelp {
    warn "Syntax: newtheme ThemeName AuthorName LayoutName IsNonfree";
    exit;
}

if ( !$theme_human ) {
    warn "No theme name provided.";
    diehelp;
}
if ( !$layout_human ) {
    warn "No layout name provided.";
    diehelp;
}

( $layout_name = lc ( $layout_human ) ) =~ s/\s//g;
( $theme_name = lc ( $theme_human ) ) =~ s/\s//g;


my ( @dropped, @css, @set, $in_css );
while ( &amp;lt;STDIN&amp;gt; ) {
    my $line = $_;

    if ( $in_css ) {
        if ( $line =~ m/"""; }/ ) {
            $in_css = 0;
            next;
        }
        push( @css, $line );
    } elsif ( $line =~ m/function Page::print_theme_stylesheet/ ) {
        $in_css = 1;
    } elsif ( /^\.$/ ) {
        break;
    } else {
        next unless $line;
        if ( $line =~ m/^layerinfo / ) {
            push( @dropped, $line );
            next;
        }

        push( @set, $line );
    }
}

# process @set lines
my ( @unknown, @presentation, @page, @entries, @modules, @fonts, @images );
foreach ( @set ) {
    if ( /userlite_interaction_links = / || /_management_links = / || /module.*order/ || /module.*show/ ) {
        push( @dropped, $_ );
    } elsif ( /font/ ) {
        push( @fonts, $_ );
    } elsif ( /module/ ) {
        push( @modules, $_ );
    } elsif ( /entry/ ) {
        push( @entries, $_ );
    } elsif ( /comment/ ) {
        push( @entries, $_ );
    } elsif ( /links/ || /layout/ ) {
        push( @presentation, $_ );
    } elsif ( /color/ ) {
        push( @page, $_ );
    } elsif ( /image/ ) {
        push( @images, $_ );
    } else {
        push( @unknown, $_ );
    }
}

my $filename = "$ENV{LJHOME}/temp/$layout_name-$theme_name.s2";
open TMP_FILE, "&amp;gt; $filename";

print TMP_FILE &amp;lt;&amp;lt;"EOT";
#NEWLAYER: $layout_name/$theme_name
layerinfo type = "theme";
layerinfo name = "$theme_human";
layerinfo redist_uniq = "$layout_name/$theme_name";
layerinfo author_name = "$author_name";

set layout_authors = [ { "name" =&amp;gt; "$author_name", "type" =&amp;gt; "user" } ];
EOT

# print @set lines
sub print_section {
    my ( $name, @lines ) = @_;

    if (@lines) {
        print TMP_FILE&amp;lt;&amp;lt;"EOT";

##===============================
## $name
##===============================

EOT
        foreach ( @lines ) {
            print TMP_FILE $_;
        }
    }
}

print_section( "Presentation", @presentation );
print_section( "Page", @page );
print_section( "Entry", @entries );
print_section( "Module", @module );
print_section( "Fonts", @fonts );
print_section( "Images", @images );
if ( @css ) {
    print TMP_FILE "\n";
    print TMP_FILE 'function Page::print_theme_stylesheet() { """' . "\n";
    foreach ( @css ) {
        print TMP_FILE "    " . $_;
    }
    print TMP_FILE '"""; }' . "\n";
}
print_section( "Unknown - DELETE THIS SECTION after reclassifying lines", @unknown );
print_section( "Dropped - DELETE THIS SECTION after verifying none of it is needed", @dropped );
print TMP_FILE "\n";
close TMP_FILE;

print "Parsed theme now saved in file: $filename\n";
print "Be sure to check this for hardcoded font sizes and color codes that can be shortened.\n";
print "This new text needs to be put into the existing file named:\n";
print "$ENV{LJHOME}/bin/upgrading/s2layers/$layout_name/theme.s2\n\n";
if ( @images ) {
    print "This layout appears to have image(s). Change their url to $layout_name/$theme_name(_imagename, if multiple), rename the image to $theme_name(_imagename), and put in:\n";
    print "$ENV{LJHOME}/htdocs/stc/$layout_name/$theme_name.png\n\n";
    }
print "Theme also needs a preview screenshot. Resize to 150x114px and put in:\n";
print "$ENV{LJHOME}/htdocs/img/customize/previews/$layout_name/$theme_name.png\n\n";
print "(for additional reference on cleaning themes, see http://wiki.dwscoalition.org/notes/Newbie_Guide_for_People_Patching_Styles#Adding_a_New_Color_Theme )";
&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;This is written to be used server-side right now, with a command-line input like './newtheme.pl "Human-Readable Theme Name" user "Layout This Theme Is For" yes &amp;lt; inputfile' I've been running it client-side by changing line 74, 'my $filename = "$ENV{LJHOME}/temp/$layout_name-$theme_name.s2";' to 'my $filename = "temp_themes/$layout_name-$theme_name.s2";' (otherwise it tries to write to root, and That's Bad. And unnecessary)&lt;br /&gt;&lt;br /&gt;Third, for the tiny handful of people doing S2 work on gedit (shhh, I like it, okay), I made some &lt;a href="http://pastebin.com/MVdY2XRb"&gt;mods to the CSS syntax highlighting file (pastebin because the file is big)&lt;/a&gt;. I tried to get it to make a custom S2 language, but it was being fussy about parsing it, and a lot of the .s2 files are largely CSS anyway. So this adds highlighting for S2 variables and S2 keywords! It goes in a file called CSS.lang in home/.local/usr/share/gtksourceview-2.0/language-specs, which will probably not exist if you haven't made custom languages. If you're on newer versions that use GTK3, that 2.0 should be a 3.0. You may have to manually select the highlighting, for some reason it only registers the .s2 extension some of the time.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=113891" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:113575</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/113575.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=113575"/>
    <title>\o/</title>
    <published>2012-04-19T01:16:22Z</published>
    <updated>2012-04-19T01:16:22Z</updated>
    <category term="bugzilla"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">While looking for something else tonight I wound up running the "resolved/fixed" Bugzilla query, and sometime between the last time I looked and now, we have passed 3000 fixed bugs. (3068, to be precise.) That's only bugs that were resolved with an actual change, patch, or other action, too; if you count duplicates, invalid bugs, things that were fixed-by-proxy, stuff we decided not to do after all, etc, that number goes up to 3469.&lt;br /&gt;&lt;br /&gt;Since we started using Bugzilla for keeping track of our tasks in mid-January of 2009, that gives us a rate of approximately 1000 bugs fixed per year. I think that is pretty fucking awesome.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=113575" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:113309</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/113309.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=113309"/>
    <title>Reminder: conference sponsorship</title>
    <published>2012-04-18T07:00:27Z</published>
    <updated>2012-04-18T07:00:27Z</updated>
    <category term="sponsorships"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">This is your naggy reminder that we still want to &lt;a href="http://dw-dev.dreamwidth.org/111420.html"&gt;register you for YAPC::NA and the Zero to Perl workshop&lt;/a&gt; in Madison in June! If you are interested, email me (denise@dreamwidth.org) to let me know. I will probably be making the first round of registrations later on in the week, and I'd like to get a feel for how many people other than me and Mark will definitely be attending.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=113309" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:112952</id>
    <author>
      <email>foxfirefey@dreamwidth.org</email>
      <name>foxfirefey</name>
    </author>
    <dw:poster user="foxfirefey"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/112952.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=112952"/>
    <title>Should we have a Mobile section in Bugzilla, or at least a why-mobile tag?</title>
    <published>2012-04-15T04:56:06Z</published>
    <updated>2012-04-15T04:56:06Z</updated>
    <category term="bugzilla"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Pros for: helps turn mobile development into an easily sectionable project and focus, which is good, because mobile is an important thing since more and more computing is being done on mobile devices.  Without a category, or at the very least a "why-mobile" tag, there's no easy way to pull up work that specifically relates to mobile initiatives.&lt;br /&gt;&lt;br /&gt;Cons against: so many categories already, I know we're reluctant to add to that.&lt;br /&gt;&lt;br /&gt;We might also want a "mobile" tag on &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://dw-dev.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/comm_staff.png' alt='[site community profile] ' width='16' height='16' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dw-dev.dreamwidth.org/'&gt;&lt;b&gt;dw_dev&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;(This post inspired by somebody asking after mobile initiatives in &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://dw-dev.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/comm_staff.png' alt='[site community profile] ' width='16' height='16' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dw-dev.dreamwidth.org/'&gt;&lt;b&gt;dw_dev&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=112952" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:112653</id>
    <author>
      <name>Alex</name>
    </author>
    <dw:poster user="kaberett"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/112653.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=112653"/>
    <title>Code tour: 24th March--11th April</title>
    <published>2012-04-12T00:45:15Z</published>
    <updated>2012-04-18T23:43:24Z</updated>
    <category term="code tour"/>
    <dw:security>public</dw:security>
    <dw:reply-count>11</dw:reply-count>
    <content type="html">All aboard the code train! Today we'll be stopping at 12 stations...&lt;br /&gt;&lt;br /&gt;&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/112653.html#cutid1"&gt;Read more...&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This train terminates here. Thank you for travelling with &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://dw-dev.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/comm_staff.png' alt='[site community profile] ' width='16' height='16' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dw-dev.dreamwidth.org/'&gt;&lt;b&gt;dw_dev&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;; we hope you enjoyed your journey, and we trust we'll see you again soon. All change please.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=112653" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:112473</id>
    <author>
      <name>Dre</name>
    </author>
    <dw:poster user="exor674"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/112473.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=112473"/>
    <title>Many Eyes Wanted</title>
    <published>2012-04-09T00:43:52Z</published>
    <updated>2012-04-09T00:43:52Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">As &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=4408"&gt;http://bugs.dwscoalition.org/show_bug.cgi?id=4408&lt;/a&gt; has the potential to blow up a lot of things/break a lot of things if I screwed up, I want as many eyes on that patch as possible.&lt;br /&gt;&lt;br /&gt;Make sure that I have:&lt;ul&gt;
&lt;li&gt;not told DW::Controller::controller to ignore the form_auth check when it is important to do one and I am not doing a check myself&lt;/li&gt;
&lt;li&gt;did not supply &lt;tt&gt;form_auth =&amp;gt; 0&lt;/tt&gt; and no form auth exists in the actual form ( either because it's not a "dangerous" action or that one &lt;em&gt;should&lt;em&gt; exist )&lt;/em&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This change will also affect pages that are not supposed to be POSTed to ( and hence have no form auth ) -- would this be a problem or can we live with it?&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Second thing:  I noticed a few pages that are devserver only, except we do the check inside the handler sub.  I am of the mind that these should not even end up in the routing table at all unless we have devserver enabled ( DW::Controller::EventOutput for one example ) -- thoughts?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=112473" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:112181</id>
    <author>
      <name>vlion</name>
    </author>
    <dw:poster user="vlion"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/112181.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=112181"/>
    <title>iDreamwidth code</title>
    <published>2012-04-08T05:43:30Z</published>
    <updated>2012-04-08T05:43:30Z</updated>
    <category term="summer of code"/>
    <category term="mobile"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</dw:reply-count>
    <content type="html">Hi,&lt;br /&gt;&lt;br /&gt;I was wondering what had happened to the iDreamwidth app &amp; code. Rumor has it that the developer disappeared after the GSOC 2010. I am interested in perhaps getting the app or maybe working on it... possibly helping admin the source control and such if I am not enough of an Objective C guru. &lt;br /&gt;&lt;br /&gt;Anyway!  What's the status? Does anyone have the code?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=112181" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:111880</id>
    <author>
      <name>pauamma</name>
    </author>
    <dw:poster user="pauamma"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/111880.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=111880"/>
    <title>RFD: changing the default value for $TRUST_X_HEADERS on development servers</title>
    <published>2012-04-07T17:13:47Z</published>
    <updated>2012-04-07T17:13:47Z</updated>
    <category term="other dw sites"/>
    <category term="config"/>
    <category term="dreamhacks"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">$TRUST_X_HEADERS is a configuration variable you should set to true (1) if you're using proxy you control and trust (eg, perlbal), so you can retrieve the real (external) source IP address of incoming requests, instead of seeing them as coming from 127.0.0.1 or the IP address your proxy/load balancer/whatever runs on. By default, it's 0, but for dreamhacks and other development hosts, that default isn't practical, so instead of making it default to 0 (with a commented-out line in etc/config.pl to change it to 1), I would make it default to the value of $IS_DEV_SERVER if not defined, with commented-out lines in etc/config.pl to force it to either 0 or 1.&lt;br /&gt;&lt;br /&gt;This shouldn't affect production servers, who likely have IS_DEV_SERVER set to 0 and TRUST_X_HEADERS set to 1 already, but it might affect production servers, if any, with unexpected configurations, and the change may surprise developers who didn't set TRUST_X_HEADERS explicitely, so I'm throwing this for discussion here in case I missed some pitfalls, or if there's a way to make it better. I'm also opening a bug linking here, so whatever the outcome of the discussion is, it doesn't fall through the cracks.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=111880" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:111698</id>
    <author>
      <email>foxfirefey@dreamwidth.org</email>
      <name>foxfirefey</name>
    </author>
    <dw:poster user="foxfirefey"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/111698.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=111698"/>
    <title>Site Messages: do we use these at all?</title>
    <published>2012-04-03T07:07:10Z</published>
    <updated>2012-04-03T07:07:10Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>14</dw:reply-count>
    <content type="html">I'm doing a little before-bed Template Toolkitting as a before-bed easy coding thing--I was thinking of converting the site messages area of the admin to TT, but I'm also wondering if we use it at all, or have plans of doing so, in case what I &lt;em&gt;should&lt;/em&gt; be doing is figuring out how to jettison it?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=111698" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:111420</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/111420.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=111420"/>
    <title>Conference sponsorship</title>
    <published>2012-04-03T05:58:57Z</published>
    <updated>2012-04-03T13:30:01Z</updated>
    <category term="sponsorships"/>
    <dw:security>public</dw:security>
    <dw:reply-count>37</dw:reply-count>
    <content type="html">I am pleased to announce that this trend of "people giving us money" seems to be continuing, which means that we want to spend more money on y'all. (LET US SPEND MONEY ON YOU. REALLY. STOP THAT IMPOSTOR SYNDROME THINKING RIGHT NOW YES YOU I KNOW WHAT YOU'RE THINKING SO JUST STOP IT I MEAN IT IF YOU ARE READING THIS I MEAN YOU. YES YOU.)&lt;br /&gt;&lt;br /&gt;If you have submitted at least five patches to us (since the DW project began) and at least one patch in the last year, we want to register you for &lt;a href="http://yapcna.org/"&gt;YAPC::NA&lt;/a&gt;, the Yet Another Perl Conference in Madison, Wisconsin on June 13th - 15th. (Or, if you're not in North America, we'd be happy to send you to a local Perl conference of similar cost, if you know of one.)&lt;br /&gt;&lt;br /&gt;There's also a two-day "&lt;a href="http://yapcna.org/conference/zero-to-perl-workshop"&gt;Zero to Perl&lt;/a&gt;" workshop that I will be attending, and if you're newer to working in Perl (or to programming in general!) and think that you'd get some use out of it, I'd love for you to come keep me company. We'll also pay the registration fee for that workshop.&lt;br /&gt;&lt;br /&gt;The small print: We reserve the right to put a cap on the number of attendees we send. (We're thinking a limit of 20 people total, and 4 people for the workshop; this may be adjusted based on interest.) I'm not sure yet if we'll register you and pay the conference directly, or if we'll ask you to register and pay and reimburse you; it depends on interest level and on how easy the conference makes it to do third-party invoices. We cannot, unfortunately, pay your travel costs (hotel or airfare) -- this year, at least! who knows about the future? If you &lt;em&gt;almost&lt;/em&gt; qualify but not quite, you can have until the end of May to get your five patches in. If travel cost is prohibitive but there's more-local conferences or training you'd like to attend, let me know and we'll see what we can do. To take advantage of this, contact me at denise at dreamwidth.org and let me know you're interested, and we'll go from there. &lt;br /&gt;&lt;br /&gt;And, a reminder, if travel isn't possible for you for whatever reason, we still want to &lt;a href="http://dw-dev.dreamwidth.org/109091.html"&gt;buy you books or other resources&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;(I really, really mean it on the impostor-syndrome thing. I have heard at least three of you who would qualify under the buy-you-stuff guidelines say that you don't think you do enough for DW to 'deserve' it. TOTALLY NOT TRUE. If you're coding for DW, we want to give you the tools to do it more efficiently and with greater skill. Period, end of sentence, full stop.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EDIT: &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://pauamma.dreamwidth.org/profile'&gt;&lt;img src='http://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://pauamma.dreamwidth.org/'&gt;&lt;b&gt;pauamma&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; has also linked me to &lt;a href="http://act.yapc.eu/ye2012/"&gt;YAPC::EU&lt;/a&gt;, which will be in Frankfurt, August 20-22. Mark and I will not be able to go to that one, but if you're in the EU and that would be cheaper/easier/more convenient for you to go to, we can totally talk about sending you to that one! I can't say for sure that we'd be able to -- I need to research costs a bit more, etc -- but do check it out.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=111420" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:111110</id>
    <author>
      <email>foxfirefey@dreamwidth.org</email>
      <name>foxfirefey</name>
    </author>
    <dw:poster user="foxfirefey"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/111110.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=111110"/>
    <title>Enabling beta features on your hack</title>
    <published>2012-03-29T02:37:42Z</published>
    <updated>2012-03-29T03:52:15Z</updated>
    <category term="beta"/>
    <category term="config"/>
    <category term="dreamhacks"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">So, if you're looking to test/develop with the beta journal jquery or the upcoming update page, you are going to need to set the BETA_FEATURES hash in your hack like so:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;    %LJ::BETA_FEATURES = (
        "journaljquery" =&amp;gt; {
            start_time  =&amp;gt; 0,
            end_time    =&amp;gt; "Inf",
        },
        "updatepage" =&amp;gt; {
            start_time =&amp;gt; 0,
            end_time =&amp;gt; "Inf",
        },
    );&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can then turn things on/off for individual accounts at: [YOUR_HACK_URL]/betafeatures&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=111110" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:111094</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="http://dw-dev.dreamwidth.org/111094.html"/>
    <link rel="self" type="text/xml" href="http://dw-dev.dreamwidth.org/data/atom/?itemid=111094"/>
    <title>Code tour: 14 Mar - 23 Mar</title>
    <published>2012-03-24T06:14:45Z</published>
    <updated>2012-03-24T06:14:45Z</updated>
    <category term="code tour"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Behind the cut: 12 resolved bugs, all of which are now live (thanks to tonight's code push).&lt;br /&gt;&lt;br /&gt;&lt;span class="cuttag_container"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href="http://dw-dev.dreamwidth.org/111094.html#cutid1"&gt;HOLY CRAP IT'S A CODE TOUR GET IN THE CAR&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As I mentioned, all of these fixes are live! You may need to opt in to the &lt;a href="http://www.dreamwidth.org/betafeatures"&gt;new Javascript on journals&lt;/a&gt; beta to see some of them. (Please do -- this is now the release candidate and we're trying to get as many eyeballs on it as possible.)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=111094" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>

