<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://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="https://dw-dev.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom"/>
  <updated>2024-09-12T01:28:09Z</updated>
  <dw:journal username="dw_dev" type="community"/>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:242603</id>
    <author>
      <name>Cocoa</name>
    </author>
    <dw:poster user="momijizukamori"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/242603.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=242603"/>
    <title>Patching Mood Themes</title>
    <published>2024-09-12T01:28:09Z</published>
    <updated>2024-09-12T01:28:09Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>9</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='momijizukamori' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://momijizukamori.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://momijizukamori.dreamwidth.org/'&gt;&lt;b&gt;momijizukamori&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Writing this down for future documentation purposes because I don't feel like fighting with the wiki today.&lt;br /&gt;&lt;br /&gt;1) Create a new folder in &lt;code&gt;$LJHOME/htdocs/img/mood&lt;/code&gt; with a short-but relevant name&lt;br /&gt;2) Put all the images for the new moodtheme in the new folder. Each image filename should be in the format &lt;code&gt;&amp;lt;emotion&amp;gt;.&amp;lt;file extension&amp;gt;&lt;/code&gt;, with the emotion in lowercase, eg, 'cheerful.png'. There is a list of valid emotion names &lt;a href="http://wiki.dwscoalition.org/wiki/index.php/Mood_Themes"&gt;on the wiki&lt;/a&gt;&lt;br /&gt;3) In a commandline, run &lt;code&gt;$LJHOME/bin/misc/mood-maker.pl --dir &amp;lt;dir name from step 1&amp;gt; --name "&amp;lt;visible title for mood theme&amp;gt;" --desc "&amp;lt;short description of mood theme&amp;gt;"&lt;/code&gt;. Neither the name nor the description should contain any : characters. This will output formatted text, or error if there's a file that doesn't match one of the available preset moods.&lt;br /&gt;4) Take the formatted output from (3), including the line beginning with MOODTHEME, and paste it at the end of &lt;code&gt;$LJHOME/bin/upgrading/moods.dat&lt;/code&gt;&lt;br /&gt;5) Update the database, following the &lt;a href="http://wiki.dwscoalition.org/wiki/index.php/Dev_Maintenance#Update_your_database"&gt;regular dev maintenance update steps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=242603" 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:237175</id>
    <author>
      <name>Cocoa</name>
    </author>
    <dw:poster user="momijizukamori"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/237175.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=237175"/>
    <title>Auto-tidying</title>
    <published>2023-07-15T16:27:48Z</published>
    <updated>2023-07-18T01:44:00Z</updated>
    <category term="documentation"/>
    <category term="scripts"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='momijizukamori' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://momijizukamori.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://momijizukamori.dreamwidth.org/'&gt;&lt;b&gt;momijizukamori&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So we've required files to be tidied using &lt;code&gt;perltidy&lt;/code&gt; &lt;a href="https://dw-dev.dreamwidth.org/213572.html"&gt;since 2019&lt;/a&gt;, buuuuut I am terrible at remembering to manually do it, so! I threw together a quick'n'dirty way of automatically running tidy on commit. It's based on &lt;a href="https://prettier.io/docs/en/precommit.html#option-6-shell-script"&gt;this example from the Prettier docs&lt;/a&gt; (Prettier is like perltidy but for CSS/JS/HTML).&lt;br /&gt;&lt;br /&gt;Here's the perl variant of the script:&lt;br /&gt;&lt;pre&gt;
#!/bin/sh
FILES=$(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g')
[ -z "$FILES" ] &amp;&amp; exit 0

# Prettify all selected files
echo "$FILES" | xargs tidyall

# Add back the modified/prettified files to staging
echo "$FILES" | xargs git add

exit 0
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This also has the bonus that it only tidies files you added to your commit, so you don't end up with rogue changes in files you didn't touch because someone else forgot to tidy before a branch got merged!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EDIT:&lt;/b&gt; &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://kareila.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://kareila.dreamwidth.org/'&gt;&lt;b&gt;kareila&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; rightfully pointed out that I didn't actually specify the install instructions (they're in the linked Prettier docs but, uh, that's not that intuitive). This script should go in the file &lt;code&gt;.git/hooks/pre-commit&lt;/code&gt;, and that file needs to be executable, which you can do on the commandline by running &lt;code&gt;chmod +x .git/hooks/pre-commit&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=237175" 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:232594</id>
    <author>
      <email>mark@plogs.net</email>
      <name>Mark Smith</name>
    </author>
    <dw:poster user="mark"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/232594.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=232594"/>
    <title>GitHub repository rename and updates</title>
    <published>2022-10-19T08:15:19Z</published>
    <updated>2022-10-20T02:49:37Z</updated>
    <category term="github"/>
    <category term="project management"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>5</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='mark' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://mark.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Hi all!&lt;/p&gt;

&lt;p&gt;As of today, I've made a few fairly broad changes to the way our repositories are set up. &lt;strong&gt;You will need to likely make some changes to your development workflow.&lt;/strong&gt; But! They should be simple.&lt;/p&gt;

&lt;p&gt;First, the changes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;dw-free&lt;/code&gt; repository has been renamed to &lt;code&gt;dreamwidth&lt;/code&gt; -- because,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;dw-nonfree&lt;/code&gt; repository is no more, it has been merged into the &lt;code&gt;dw-free&lt;/code&gt; under the path &lt;code&gt;ext/dw-nonfree/&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, the &lt;code&gt;master&lt;/code&gt; branch has been renamed to &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These two changes mean that no more do we have to track and coordinate changes across two repositories, they can be done atomically in one place. Since we don't really support or test running Dreamwidth on its own (without the branding) this will also allow us to simplify development by ultimately collapsing the code, too.&lt;/p&gt;

&lt;p&gt;To update your checkout of Dreamwidth, you will need to do two separate things. First, go to Github and to your existing &lt;code&gt;dw-free&lt;/code&gt; repository, go to the settings and:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Rename the repository to &lt;code&gt;dreamwidth&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to branches and rename the &lt;code&gt;master&lt;/code&gt; branch to &lt;code&gt;main&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once that's done, you need to update your local checkout like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; cd $LJHOME

 # WARNING: Only do this if you have no code here that you care about!
 rm -rf ext/dw-nonfree

 # Update the repository root (for your "origin" remote, **set your username here**)
 git remote set-url origin git@github.com:YOUR_GITHUB_USERNAME/dreamwidth.git

 # Update the repository root (for your "upstream" remote, please change as needed)
 git remote set-url upstream git@github.com:dreamwidth/dreamwidth.git

 # Fetch only to get the new main branch
 git fetch

 # Switch over to it
 git checkout main

 # Get rid of local master
 git branch -d master

 # Redirect HEAD
 git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br /&gt;
That's it; you should be good to go now. I'll work on updating the Dreamhack scripts shortly, but wanted to get these instructions out. Please let me know if you have any questions/comments/issues.&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=232594" 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:213572</id>
    <author>
      <email>mark@plogs.net</email>
      <name>Mark Smith</name>
    </author>
    <dw:poster user="mark"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/213572.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=213572"/>
    <title>perltidy now required!</title>
    <published>2019-05-25T20:42:48Z</published>
    <updated>2019-05-25T20:42:48Z</updated>
    <category term="documentation"/>
    <category term="perl"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='mark' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://mark.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;I've gone ahead and run perltidy on our codebase and added a test that will run and tell you if things are tidy or not. This is now required for all PRs and code we're merging.&lt;/p&gt;

&lt;p&gt;To set up and run it locally, first make sure your modules are up to date:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
bin/checkconfig.pl
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will probably ask you to install some modules, do so! Then you can run &lt;code&gt;tidyall&lt;/code&gt; and it will automatically reformat all of your files as necessary:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
perl -I$LJHOME/extlib/lib/perl5 $LJHOME/extlib/bin/tidyall -a
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The first time you run this will take a while. It caches the results though so further runs will be much, much faster.&lt;/p&gt;

&lt;p&gt;That should be it -- let me know if this works for you or if you have any issues!&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=213572" 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:195174</id>
    <author>
      <name>Karzilla, Destroyer of Bugs</name>
    </author>
    <dw:poster user="karzilla"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/195174.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=195174"/>
    <title>moving away from MogileFS</title>
    <published>2017-02-09T05:27:12Z</published>
    <updated>2017-02-16T16:31:56Z</updated>
    <category term="config"/>
    <category term="mogilefs"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>3</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='karzilla' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://karzilla.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://karzilla.dreamwidth.org/'&gt;&lt;b&gt;karzilla&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We're about to deploy a new backend interface for file storage, called BlobStore, which &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://mark.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; wrote over the past few months with the intention of standardizing how file storage is handled in our code and making it work with any number of possible underlying technologies.  It currently supports MogileFS and local disk, and we plan to add support for S3 in the future.&lt;br /&gt;&lt;br /&gt;At this point, MogileFS is considered legacy technology.  If your site is set up to use MogileFS, that configuration will continue to work under BlobStore for now.  However, no new code that requires MogileFS will be accepted.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What you need to know if you are writing code:&lt;/b&gt; the new methods are implemented in cgi-bin/DW/BlobStore.pm and are pretty straightforward.  For the most part they serve as drop-in replacements for the MogileFS file methods.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What you need to know if you are running a server:&lt;/b&gt; if you try to do anything related to uploading images, including userpics, you will get a fatal error unless you have defined either %LJ::BLOBSTORE or %LJ::MOGILEFS_CONFIG.  So if you were already using MogileFS, you're fine, but if not, you will need to set up local disk storage in one of your local config files.  The stock etc/config-private.pl in dw-free will have an example %LJ::BLOBSTORE that you can uncomment and use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What you need to know if your existing userpics disappear:&lt;/b&gt; If you were running a server without MogileFS, all of your system's userpics were stored in a database table, and use of that table is no longer supported.  I'm working on a new version of the migrate-userpics.pl script that can be used to move the images into your BlobStore once you've got that configured. (Update: this is available in bin/upgrading/migrate-userpics.pl.)&lt;br /&gt;&lt;br /&gt;Obviously this will all need to be documented on the wiki somewhere, but I've got my hands full right now making sure everything is nailed down to push these changes into production in a few days.  Let me know if there's anything I didn't cover here that needs to be addressed.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=195174" 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:177377</id>
    <author>
      <name>kareila</name>
    </author>
    <dw:poster user="kareila"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/177377.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=177377"/>
    <title>New Page Conversion Guide!</title>
    <published>2015-09-10T20:05:10Z</published>
    <updated>2015-09-10T20:05:10Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='kareila' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://kareila.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://kareila.dreamwidth.org/'&gt;&lt;b&gt;kareila&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am excited to announce that I have just published to the wiki a new &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Template_Toolkit_/_Foundation_Conversion_Guide"&gt;Template Toolkit / Foundation Conversion Guide&lt;/a&gt;!  Covering such thrilling and educational topics as:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Which page components belong in a controller vs. a template?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What do I need to do to convert a page to Foundation?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;How is a BML file like a plate of spaghetti?&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;AND MORE!&lt;br /&gt;&lt;br /&gt;As usual, let me know here if you have any questions or comments!&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=177377" 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:176107</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/176107.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=176107"/>
    <title>Preventing spam on a Dreamhack/developer environment</title>
    <published>2015-08-13T15:55:47Z</published>
    <updated>2015-08-13T15:55:47Z</updated>
    <category term="dreamhacks"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>3</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='denise' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://denise.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your dev environment is publicly reachable on the internet, it will get spam! I've written a &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Dreamhack_spam_prevention"&gt;quick guide to spam prevention&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=176107" 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:171158</id>
    <author>
      <name>kareila</name>
    </author>
    <dw:poster user="kareila"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/171158.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=171158"/>
    <title>running the automated test suite</title>
    <published>2015-06-03T05:40:46Z</published>
    <updated>2015-06-03T05:40:46Z</updated>
    <category term="testing"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='kareila' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://kareila.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://kareila.dreamwidth.org/'&gt;&lt;b&gt;kareila&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I updated &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Dev_Testing"&gt;http://wiki.dreamwidth.net/wiki/index.php/Dev_Testing&lt;/a&gt; with information about setting up the new test config files and initializing the test database.  If you give it a go and run into trouble, leave a comment here.  &amp;hearts;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=171158" 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:167978</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/167978.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=167978"/>
    <title>New wiki page: 'Explanations'</title>
    <published>2015-01-25T11:07:11Z</published>
    <updated>2015-01-25T11:07:11Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>3</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='denise' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://denise.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I created the &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Explanations"&gt;Explanations&lt;/a&gt; wiki page after seeing &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://mark.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://mark.dreamwidth.org/'&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; waving the code machete tonight: he took out a lot of old and unused stuff, which is great, but a few (very out of date) old server-admin documentation files that were casualties had some explanations of things that I don't think are documented anywhere else.&lt;br /&gt;&lt;br /&gt;That does not mean the entire server-admin documentation should survive -- out of date documentation is often worse than no documentation! -- but between that and the talk I gave at LCA, "When Your Codebase Is Nearly Old Enough To Vote", it occurred to me that we should probably document a few of those things that live in our heads that we find ourselves explaining to new contributors -- things like why an entry URL uses the anum and not the jitemid, why you can't just change a text string in a patch and have it update the text on the live site, why you occasionally hear oldtimers calling the Recent Entries page 'lastn', stuff like that.&lt;br /&gt;&lt;br /&gt;So, if you've been around for a while and can think of a few things that wouldn't necessarily make sense right off the top of your head -- or if you're new and ran into one or more of those things at some point and had to have someone explain them to you -- please add them to that page! As I said in my talk: institutional memory is a great thing to have, but a lousy thing to have to rely on.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=167978" 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:164689</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/164689.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=164689"/>
    <title>Changes to some of the dev documentation</title>
    <published>2014-10-14T11:13:34Z</published>
    <updated>2014-10-14T12:02:31Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='fu' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://fu.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;With &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://denise.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s help (the bulk of this was from her really!), we've made major changes to the dev-facing wiki documentation for clarity.&lt;/p&gt;

&lt;p&gt;Among other things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;merged multiple/redundant pages and sections&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;improved linking&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(hopefully) reduced the complexity of paths through the wiki for someone just getting started&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest change is to &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Dev_Getting_Started"&gt;Dev Getting Started&lt;/a&gt;, which is now greatly expanded, with a much clearer flow, and more focus on someone totally new to DW/development. The resources for someone more experienced have been moved to &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Dev_Quick_Start"&gt;Dev Quick Start&lt;/a&gt; .&lt;/p&gt;

&lt;p&gt;The contents of Version Control have been merged with &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Newbie_Guide:_How_To_in_Git"&gt;Newbie Guide: How To in Git&lt;/a&gt; and the latter is the canonical page for git info -- though now I'm tempted to go rename it to Version Control because it's shorter. Git How To? ;)&lt;/p&gt;

&lt;p&gt;Git instructions in some pages have been updated to be much simpler with a pointer to the appropriate section in the git commands in case that's needed.&lt;/p&gt;

&lt;p&gt;And the &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Directory_Structure"&gt;Directory Structure&lt;/a&gt; has been expanded to cover more subdirectories.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Beginning_dev_checklist"&gt;Beginner Dev Checklist&lt;/a&gt; needs some more effort to pull it apart: plan is to integrate it into other pages as appropriate and then get rid of it (since it's not sufficiently different from Dev Getting Started to warrant its own page)&lt;/p&gt;

&lt;p&gt;Would appreciate if you poked around through the various pages and let me know if there's anything still left unclear, or if you're aware of similar pages that can be merged into these existing ones!&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=164689" 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:160803</id>
    <author>
      <name>kaberett</name>
    </author>
    <dw:poster user="kaberett"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/160803.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=160803"/>
    <title>Github Issues: now on the wiki!</title>
    <published>2014-08-01T13:39:15Z</published>
    <updated>2014-08-21T21:15:25Z</updated>
    <category term="github"/>
    <category term="bugzilla"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>23</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='kaberett' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://kaberett.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://kaberett.dreamwidth.org/'&gt;&lt;b&gt;kaberett&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've synthesised discussions about and practical use of GHI into &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Github_Issues"&gt;a single wiki page&lt;/a&gt;. Please shout if you want anything added or changed!&lt;br /&gt;&lt;br /&gt;I've also gone through and replaced as many references to Bugzilla with references to GHI as (1) makes sense and (2) I am immediately able. There's about 20 pages still on my hit-list, not all of which I have the knowledge to deal with - if you feel like pitching in, please take one and let me know when it's done (or, if you don't have wiki access, let me know what the appropriate edits would be).&lt;br /&gt;&lt;br /&gt;&lt;span class="cut-wrapper"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b class="cut-open"&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class="cut-text"&gt;&lt;a href="https://dw-dev.dreamwidth.org/160803.html#cutid1"&gt;List of pages outstanding&lt;/a&gt;&lt;/b&gt;&lt;b class="cut-close"&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=160803" 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:154823</id>
    <author>
      <name>Rax E. Dillon</name>
    </author>
    <dw:poster user="rax"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/154823.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=154823"/>
    <title>crawling comments on a community?</title>
    <published>2014-05-19T15:43:42Z</published>
    <updated>2014-05-19T15:43:42Z</updated>
    <category term="xml-rpc"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>17</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='rax' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://rax.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://rax.dreamwidth.org/'&gt;&lt;b&gt;rax&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hi!&lt;br /&gt;&lt;br /&gt;I'm trying to crawl and parse comments on a community for a fandom event (http://hs-worldcup.dreamwidth.org , if you're curious). I've run into a bunch of issues and lack of API documentation, and talked to DW&amp;nbsp;Support a couple of times, and feel like I&amp;nbsp;am further away from successfully doing anything than when I started. Before I&amp;nbsp;say anything else, here is What I&amp;nbsp;Am Really Trying To Do:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;take an individual community post (example:&amp;nbsp;http://hs-worldcup.dreamwidth.org/3493.html#comments)&amp;nbsp;&lt;/li&gt;&lt;li&gt;download all of the comments with some sort of threading information --- the data I&amp;nbsp;need in particular is comment subject, comment author, comment content, whether or not it's a reply and if so to what&lt;/li&gt;&lt;li&gt;parse out that data and do transformations to it and add it to a database (which is not super relevant to this question I&amp;nbsp;don't think but I&amp;nbsp;can go into more detail if necessary)&lt;/li&gt;&lt;/ul&gt;I looked into the API for getting comments which led me in a roundabout way to www.livejournal.com/developer/exporting.bml . I'm probably missing something obvious here, but I don't actually see how this tells me how to make an API call?&amp;nbsp;It gives me a GET request, but not what to send the GET request to? Also, support told me the only action DW&amp;nbsp;supports here is &amp;quot;Get all comments for a community,&amp;quot;&amp;nbsp;not &amp;quot;Get all comments for a page,&amp;quot;&amp;nbsp;and I&amp;nbsp;should probably just crawl the pages. Is that what other folks have done when doing this?&lt;br /&gt;&lt;br /&gt;If that is what I&amp;nbsp;should do, how do I get around the adult content warning? Is there a flag I can pass with the URL or something? Do I&amp;nbsp;need to do something more complicated than just using curl to grab the pages? Is there something I&amp;nbsp;can pass to say &amp;quot;just give me one piece of HTML with all 5000 comments on it it will be easier for both of us probably?&amp;quot;&lt;br /&gt;&lt;br /&gt;Thank you for any suggestions or advice you might have. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=154823" 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:150630</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/150630.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=150630"/>
    <title>Directory Structure</title>
    <published>2013-11-17T05:42:43Z</published>
    <updated>2013-11-17T05:44:29Z</updated>
    <category term="scss"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='fu' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://fu.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;SCSS directory structure&lt;/h3&gt;

&lt;p&gt;All our SCSS files are in &lt;code&gt;htdocs/scss/&lt;/code&gt;; compiled versions are automatically placed in &lt;code&gt;htdocs/stc/css&lt;/code&gt;. We care about the former when editing, and the latter when including them in the webpage itself.&lt;/p&gt;

&lt;p&gt;One of the things that SCSS is really good for is making it easy to organize CSS. I'd like us to move away from CSS for individual pages, and instead concentrate on having &lt;em&gt;components&lt;/em&gt; that are used on multiple pages.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/scss/foundation&lt;/strong&gt; - stylesheets from the Foundation library. The main files to touch here are &lt;code&gt;foundation.scss&lt;/code&gt;, which specifies the components we'll be using on all pages, and &lt;code&gt;_variables.scss&lt;/code&gt;, which sets default behavior / appearance variables that are common to all site skins.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;_variable.scss&lt;/code&gt; should not contain any colors, because we have to take into account dark-on-light vs light-on-dark skins. Sizes / measurements are perfectly acceptable here!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/scss/components&lt;/strong&gt; - stylesheets for individual components. These are included only on the pages that need them, but contain all the styling that's required within. Everything here should have a corresponding example of the HTML structure over on /dev/style-guide&lt;/p&gt;

&lt;p&gt;This folder also contains Foundation components that aren't used on enough pages to warrant being included on all of them (&lt;code&gt;htdocs/scss/foundation/foundation.scss&lt;/code&gt;), but that we still need on individual pages. &lt;code&gt;htdocs/scss/components/progress-bars&lt;/code&gt; is an example.&lt;/p&gt;

&lt;p&gt;For components where you want access to variables, useful for things like line-height, include the following code at the top:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;pre&gt;$include-html-classes: false;
&amp;#64;import "foundation/variables", "foundation/components/global";&lt;/pre&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That won't work for colors though! Things that specify colors will have to go into the site skins.&lt;/p&gt;

&lt;p&gt;To use a component from a .tt file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[% dw.need_res( { group =&amp;gt; "foundation" }, "stc/css/components/component-name.css" ); %]
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/scss/mixins&lt;/strong&gt; - mixins are fragments of code that can be used by multiple elements. Currently we have one mixin which hides elements visually but keeps them visible to screenreader. This replaces the... three or four different ways we were doing it before&lt;/p&gt;

&lt;p&gt;To use a mixin, from an SCSS file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;#64;import "mixins/screenreader-friendly";&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;.element-name {
    &amp;#64;extend %screenreader-friendly;
}&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/scss/pages&lt;/strong&gt; - stylesheets for individual pages. Directory should mirror the URL structure of your pages as much as possible. But really we should try not to have anything here...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/scss/skins&lt;/strong&gt; - stylesheets for site skins. Includes the actual skins and shared files, e.g., skiplinks, alert colors&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;JS directory structure&lt;/h3&gt;

&lt;p&gt;There's a lot more of the old JS hanging around in &lt;code&gt;htdocs/js&lt;/code&gt;, but new files should follow the same basic structure as above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/js/foundation&lt;/strong&gt; - scripts from the Foundation library&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/js/jquery&lt;/strong&gt; - scripts from the jQuery / jQuery UI library&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/js/components&lt;/strong&gt; - individual components, suitable for inclusion on multiple pages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;htdocs/js/pages&lt;/strong&gt; - onload for individual pages; no examples yet. Preferably just the bare minimum of&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$(document).load( function() {
    $(".element").someComponent();
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;} );&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=150630" 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:150172</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/150172.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=150172"/>
    <title>Style Guide / Foundation: Getting Started</title>
    <published>2013-11-15T15:56:32Z</published>
    <updated>2013-11-15T15:57:58Z</updated>
    <category term="documentation"/>
    <category term="scss"/>
    <dw:security>public</dw:security>
    <dw:reply-count>12</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='fu' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://fu.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So I'm here to present to you all &lt;a href="http://hack.afunamatata.com/dev/style-guide"&gt;our new style guide&lt;/a&gt;. That's on my public dev server, not yet on dreamwidth.org, so don't worry if it's a bit slow.&lt;/p&gt;

&lt;p&gt;That page contains the components that we'll be using across the site. The goal is to have every component documented there and to have as little per-page styling as possible. That does two things: make appearance / interactions consistent across the site (good for users); make it easy to refer to design decisions when writing pages (good for developers, especially those of us who aren't really frontend people)&lt;/p&gt;

&lt;p&gt;We've used the Foundation framework as our basis for our redesign. That gives us a clean, responsive design that is really easy to make work on large and small screens -- we've had a huge problem with our site headers and certain pages on phones / tablets; it's about time to fix that.&lt;/p&gt;

&lt;p&gt;I recommend going over the &lt;a href="http://foundation.zurb.com/docs"&gt;Foundation documentation&lt;/a&gt; btw. They have excellent documentation. It's a good way to get started.&lt;/p&gt;

&lt;p&gt;All our Foundation work uses SCSS. SCSS is a CSS preprocessor and it works like CSS but with additional features. You can have variables, if statements, mixins (fragments of code that are used by more than one thing).&lt;/p&gt;

&lt;p&gt;It requires an additional compilation step to get all this goodness, but that's possible with one command. Try the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;pull in the latest changes on develop&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to /dev/style-guide on your 'hack. It'll be completely unstyled&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run this command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;compass compile
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A couple lines will scroll by, looking like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;...
create htdocs/stc/css/foundation.scss
create htdocs/stc/css/normalize.scss
...
create htdocs/stc/css/skins/celerity.scss
create htdocs/stc/css/skins/gradation/gradation-horizontal.scss
create htdocs/stc/css/skins/gradation/gradation-vertical.scss
create htdocs/stc/css/skins/lynx.scss
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That's good: that means your SCSS files have been turned into CSS, which you can now use.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The SCSS files themselves are in &lt;code&gt;htdocs/scss&lt;/code&gt;. These are the files you'll be touching. After they've been compiled, the generated files are placed in &lt;code&gt;htdocs/stc/css&lt;/code&gt;. These are the files that you'll be including on the page.&lt;/p&gt;

&lt;p&gt;So if you have a file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    htdocs/scss/components/foo.scss
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You include it by doing this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    [% dw.need_res( "stc/css/components/foo.css" ) %]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;One last thing, the &lt;code&gt;compass compile&lt;/code&gt; command is good, but when you're developing, the last thing you want is to have to constantly switch from the file you're editing to your terminal window to run a command. Luckily, someone's thought of that. What you can do instead is this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;     compass watch
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That watches for any changes in the SCSS files, and compiles them into .css files automatically. Leave that running in a separate window and it'll just do its thing. Just make sure you stop it after you're done developing for a session (just like you do with your Apache servers),  because it does use up some resources!&lt;/p&gt;

&lt;p&gt;Note: it's magical but not completely so. If you're working on something in dw-nonfree, you'll have to run &lt;code&gt;compass watch&lt;/code&gt; separately in that directory:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    cd $LJHOME/ext/dw-nonfree
    compass watch
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But if you're not touching anything in dw-nonfree, then you only need to run it the once.&lt;/p&gt;

&lt;p&gt;Please jump in, poke around! Play with things. I'm happy to answer any questions :)&lt;/p&gt;

&lt;p&gt;I plan on making several entries on the ongoing conversion. Soon to come: error handling for forms, directory structure for CSS / JS, easier way to format messages for email, etc.&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=150172" 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:146811</id>
    <author>
      <name>kareila</name>
    </author>
    <dw:poster user="kareila"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/146811.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=146811"/>
    <title>MogileFS wiki page updated</title>
    <published>2013-07-21T04:11:06Z</published>
    <updated>2013-07-21T04:11:06Z</updated>
    <category term="documentation"/>
    <category term="mogilefs"/>
    <category term="dreamhacks"/>
    <category term="install issues"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='kareila' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://kareila.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://kareila.dreamwidth.org/'&gt;&lt;b&gt;kareila&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.dwscoalition.org/wiki/index.php/MogileFS_setup"&gt;http://wiki.dwscoalition.org/wiki/index.php/MogileFS_setup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All of the information that was previously there assumed you had root on a Debian box.  I've updated the page to document the steps needed to get it working for dreamhacks as well.  (Until the next time things break, anyway.)&lt;br /&gt;&lt;br /&gt;YOU'RE WELCOME.&lt;br /&gt;&lt;br /&gt;Ahem.&lt;br /&gt;&lt;br /&gt;That is to say, if you try using my instructions and run into problems, let me know!&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=146811" 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:130091</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/130091.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=130091"/>
    <title>RFC: organizing the wiki</title>
    <published>2013-01-11T02:06:22Z</published>
    <updated>2013-01-11T02:12:26Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='fu' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://fu.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I started with a desire to document how to submit changes to a release branch, and somehow ended up trying to figure out how we could organize the wiki to make it easy for us to figure out what we have and what we need. &lt;br /&gt;&lt;br /&gt;Please read and comment on &lt;a href="http://dw-wiki.dreamwidth.org/7258.html"&gt;my entry in dw-wiki&lt;/a&gt;. I'm locking comments here so we can centralize all discussion in one place.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=130091" 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:127865</id>
    <author>
      <name>foxfirefey</name>
    </author>
    <dw:poster user="foxfirefey"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/127865.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=127865"/>
    <title>Best way to review pull requests</title>
    <published>2012-11-09T23:13:37Z</published>
    <updated>2012-11-09T23:13:37Z</updated>
    <category term="documentation"/>
    <category term="github"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='foxfirefey' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://foxfirefey.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://foxfirefey.dreamwidth.org/'&gt;&lt;b&gt;foxfirefey&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, as far as I can tell from my researching over the past few days, the only real way to get a pull request to review it is to:&lt;br /&gt;&lt;br /&gt;* Manually add the submitter's dw-* repo as a remote in the repo on your hack (or Github I suppose, but there is no GUI advantage here).&lt;br /&gt;* Manually pull the branch in question&lt;br /&gt;&lt;br /&gt;Is there a better way to do this?  Am I missing something?  This seems really, well, annoying, with manually crafting URLs and whatnot, and not very user friendly.  (I'm trying to make some documents on reviewing pull requests for people who are not &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://fu.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://fu.dreamwidth.org/'&gt;&lt;b&gt;fu&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, since we need to try and spread out that work a little.)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=127865" 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:122612</id>
    <author>
      <name>foxfirefey</name>
    </author>
    <dw:poster user="foxfirefey"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/122612.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=122612"/>
    <title>Overdue Announcement: Dreamwidth, Github and you</title>
    <published>2012-08-26T07:26:19Z</published>
    <updated>2012-08-26T07:32:48Z</updated>
    <category term="github"/>
    <category term="documentation"/>
    <category term="policy"/>
    <dw:mood>excited</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>10</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='foxfirefey' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://foxfirefey.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://foxfirefey.dreamwidth.org/'&gt;&lt;b&gt;foxfirefey&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;As of several weeks ago, all commits to the Dreamwidth codebases have gone to our new repositories on Github:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/dreamwidth/dw-free"&gt;https://github.com/dreamwidth/dw-free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dreamwidth/dw-nonfree"&gt;https://github.com/dreamwidth/dw-nonfree&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a few relevant wiki documents that have been fully revised to account for this change: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://wiki.dwscoalition.org/wiki/index.php/Moving_your_Dreamwidth_installation_to_use_Github"&gt;Moving your Dreamwidth installation to use Github&lt;/a&gt; -- these instructions will tell you how to move your current Dreamhack/dev environment over to a Github based installation&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.dwscoalition.org/wiki/index.php/Dev_Maintenance"&gt; Dev Maintenance&lt;/a&gt; -- this document tells you how to keep your Github Dreamwidth based installation (and your Dreamwidth forks) updated with the code from the Dreamwidth repositories&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.dwscoalition.org/wiki/index.php/Draft:_Github_development_process"&gt;Draft: Github development process&lt;/a&gt; -- This is the document in the least refined state, so keep in mind that it is in stronger need of suggestions and revisions.  It goes through the very basics of Git workflow.  This and Dev Maintenance might eventually end up merged into one document. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are working on getting the rest of the wiki development documentation updated (&lt;a href="http://dw-wiki.dreamwidth.org/6016.html"&gt;see the dw_wiki post&lt;/a&gt;).  Feel free to comment to this post with your questions/concerns about the move!&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=122612" 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:122223</id>
    <author>
      <name>foxfirefey</name>
    </author>
    <dw:poster user="foxfirefey"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/122223.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=122223"/>
    <title>Development documentation update project in progress</title>
    <published>2012-08-20T20:41:23Z</published>
    <updated>2012-08-20T20:41:23Z</updated>
    <category term="github"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='foxfirefey' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://foxfirefey.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://foxfirefey.dreamwidth.org/'&gt;&lt;b&gt;foxfirefey&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As part of our move to Github we have &lt;a href="http://dw-wiki.dreamwidth.org/6016.html"&gt;a lot of development documentation to update&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you want to be part of the vanguard, take a gander at the &lt;a href="http://wiki.dwscoalition.org/wiki/index.php/Moving_your_Dreamwidth_installation_to_use_Github"&gt;Moving your Dreamwidth installation to use Github&lt;/a&gt; instructions.  People following them are encouraged to &lt;a href="http://wiki.dwscoalition.org/notes/IRC"&gt;log into the #dreamwidth-dev channel on IRC&lt;/a&gt; for real time assistance.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=122223" 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="https://dw-dev.dreamwidth.org/116460.html"/>
    <link rel="self" type="text/xml" href="https://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>
    <category term="documentation"/>
    <category term="testing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>10</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='denise' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://denise.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='white-space: nowrap;'&gt;&lt;a href='https://crschmidt.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://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="https://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:99768</id>
    <author>
      <name>Azure Jane Lunatic (Azz) 🌺</name>
    </author>
    <dw:poster user="azurelunatic"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/99768.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=99768"/>
    <title>Cookie Roundup</title>
    <published>2011-10-12T04:22:13Z</published>
    <updated>2011-10-12T04:22:13Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='azurelunatic' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://azurelunatic.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://azurelunatic.dreamwidth.org/'&gt;&lt;b&gt;azurelunatic&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Because it was a question (thanks, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://twitter.com/3sperhand'&gt;&lt;img src='https://p2.dreamwidth.org/e0caa790ec10/-/twitter.com/favicon.ico' alt='[twitter.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='16' height='16'/&gt;&lt;/a&gt;&lt;a href='http://twitter.com/3sperhand'&gt;&lt;b&gt;3sperhand&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;!), I've started a wiki page for documenting the cookies we set, and what's in them, and why. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.dwscoalition.org/notes/Cookies"&gt;http://wiki.dwscoalition.org/notes/Cookies&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Anyone with more expertise in this than me, please feel free to jump in and help document. &lt;br /&gt;&lt;br /&gt;&lt;span class="cut-wrapper"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b class="cut-open"&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class="cut-text"&gt;&lt;a href="https://dw-dev.dreamwidth.org/99768.html#cutid1"&gt;On use of the wiki&lt;/a&gt;&lt;/b&gt;&lt;b class="cut-close"&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=99768" 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:90051</id>
    <author>
      <name>skakri</name>
    </author>
    <dw:poster user="skakri"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/90051.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=90051"/>
    <title>importer and xpost</title>
    <published>2011-05-26T22:39:47Z</published>
    <updated>2011-05-26T22:39:47Z</updated>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>13</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='skakri' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://skakri.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://skakri.dreamwidth.org/'&gt;&lt;b&gt;skakri&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hello, I'd like to know if there is any documentation regarding content importing from LJ-based site (AFAIK, old version, circa "07) and cross-post setup steps? How should I define a new external site?&lt;br /&gt;&lt;br /&gt;I'm currently using jbackup.pl + LJ::Simple mash-up, but that won't work in the long run, as even if entry backdate is set, users still receive messages of a new posts, if they're subscribed.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=90051" 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:88338</id>
    <author>
      <name>Gabor Szabo</name>
    </author>
    <dw:poster user="szabgab"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/88338.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=88338"/>
    <title>The "entities" of a Dreamwidth setup</title>
    <published>2011-05-16T18:34:30Z</published>
    <updated>2011-05-16T18:34:30Z</updated>
    <category term="ops"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='szabgab' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://szabgab.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://szabgab.dreamwidth.org/'&gt;&lt;b&gt;szabgab&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hi,&lt;br /&gt;&lt;br /&gt;Seeing how complex the deployment of applications developed in various corporations I am doing a little research to see how open source application manage the complexity. For that I was looking for complex (in terms of deployment and development environment) applications to see how they manage the task and how they test their system. Dreamwidth seems like a good case so I jumped on the IRC channel where &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://pauamma.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://pauamma.dreamwidth.org/'&gt;&lt;b&gt;pauamma&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; gave me a quick list of the entities. Then I was volunteered to raise the issue here to get further clarifications.&lt;br /&gt;&lt;br /&gt;So here is the list I got:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;perlbal on the load balancer(s)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;webservers running Apache+modperl+DW webapp code&lt;/li&gt;&lt;br /&gt;&lt;li&gt;database cluster for global data&lt;/li&gt;&lt;br /&gt;&lt;li&gt;several (currently 3) database clusters for per-user data. Each cluster holds the same data for different users&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Gearman servers, to offload some web-synchronous compute-intensive tasks&lt;/li&gt;&lt;br /&gt;&lt;li&gt;TheSchwartz server(s) for asynchronous or non-web tasks.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MogileFS servers for blobby data not stored in a SQL database for various reasons.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Postfix&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I found the &lt;a href="http://wiki.dwscoalition.org/notes/Production_Notes"&gt;Production Notes&lt;/a&gt; to be also a good source for information but I'd appreciate to get further details if the list is not complete. What would be very interesting to me is to understand what are the responsibilities of the various entities in the system. What kind of data is kept in the various databases. Which entities can be duplicated if load requires it and how the jobs can be divided?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=88338" 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:81634</id>
    <author>
      <email>denise@dreamwidth.org</email>
      <name>Denise</name>
    </author>
    <dw:poster user="denise"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/81634.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=81634"/>
    <title>performance tutorials?</title>
    <published>2011-01-31T14:58:39Z</published>
    <updated>2011-01-31T14:58:39Z</updated>
    <category term="site performance"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>5</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='denise' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://denise.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://denise.dreamwidth.org/'&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm really interested in learning more about what kind of performance things we need to keep in mind while coding, and how to design for a well-behaved high-availability web app. I know the very basics, like using memcache whenever possible and using direct assignments instead of shifts, but not much else! &lt;br /&gt;&lt;br /&gt;So, is anyone interested in writing tutorials on things to keep in mind when coding stuff for performance factors? As we grow, this is going to start to be stuff we should keep in mind, and I think it's a great opportunity for us all to share knowledge and learn together. No matter how much you know, even if you think it's not much, it's probably more than someone else (ie, me) knows...&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=81634" 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:79960</id>
    <author>
      <name>Mat Bowles</name>
    </author>
    <dw:poster user="matgb"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/79960.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=79960"/>
    <title>Delicious Glue client updating [solved]</title>
    <published>2011-01-13T16:10:12Z</published>
    <updated>2011-01-13T17:04:00Z</updated>
    <category term="documentation"/>
    <category term="xml-rpc"/>
    <dw:security>public</dw:security>
    <dw:reply-count>12</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='matgb' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://matgb.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://matgb.dreamwidth.org/'&gt;&lt;b&gt;matgb&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OK, I'm working on an update and port of the Delicious Glue script originally done for LJ. It works as a Client, ergo I'm asking here.&lt;br /&gt;&lt;br /&gt;I've got most of what I want to acheive working, including, finally, Icons (the keyword is case sensitive, obvious when you think about it).  However, I haven't managed to get post security working--this isn't an issue for me, and therefore lower priority, but I'd imagine some would like it, and would like to include it.  I've read through the Wiki entries on both &lt;a href="http://wiki.dwscoalition.org/notes/XML-RPC_Protocol" title="XML-RPC Protocol - Dreamwidth Notes"&gt;XML-RPC Protocol&lt;/a&gt; and &lt;a href="http://wiki.dwscoalition.org/notes/XML-RPC_Protocol_Method:_postevent" title="XML-RPC Protocol Method: postevent - Dreamwidth Notes"&gt;XML-RPC Protocol Method: postevent&lt;/a&gt;, and worked through what I think the code should be, but it isn't working.  My current code is here:&lt;br /&gt;&lt;a href="http://notzen.com/mat/delicious-glue.txt"&gt;http://notzen.com/mat/delicious-glue.txt&lt;/a&gt; (and there's awrite up with the full script to DL &lt;a href="http://matgb.dreamwidth.org/384921.html" title="Updating the Delicious Glue script for DW"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;s&gt;I've commented out the security stuff to get the rest working, but this is my first time, ever, messing around with client protocols, and I've had a few requests for copies of the script.  What am I doing wrong?&lt;/s&gt; Thanks to &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://www.dreamwidth.org/profile?user=andreducker'&gt;&lt;img src='https://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='https://www.dreamwidth.org/profile?user=andreducker'&gt;&lt;b&gt;andreducker&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; linking to the original post, I have discovered my problem.  Missing semi colons.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=79960" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
