Developer Tips

From Dreamwidth Notes
Jump to: navigation, search

Showing Whitespace

Dreamwidth does not want tabs or trailing whitespace, as per the Dev Programming Guidelines. These two tips can help you check out your patch before submission for these flaws.

In vim, you can show whitespace with the command

:set list

You can also use cat -et.

Error Messages

In .bml files, if you get an error message with a line number, the line numbering starts from the beginning of the code block, not from the beginning of the file.

The Daily Snapshot

Even if you don't use a Dreamhack for your development, the Dreamhack service can still help, because one of the Dreamhacks on the service is special - it's a live, always-running daily snapshot of the Dreamwidth code which is automatically reinstalled each day at 12:30am GMT. If you ever need to test something on a clean installation of the code, and don't require SSH access, you can use the Daily Snapshot at:

Feel free to make whatever changes you like; the 'hack is automatically reinstalled each day, so none of your changes will last long. (Similarly, if you find that someone else has messed with the installation enough for it to be unuseable for your purpose, you can simply wait a day and it'll be back to normal.)

Some notes about the service:

  • Invite codes are turned off. You can create a new account by clicking "Create Account" in the Create menu.
  • The password for the 'system' account is 'system'. Please don't change this unless you're testing something specifically related to that. (If you are, then be aware that the password, like everything else, will revert back to 'system' on the next reinstall.)
  • If the Daily Snapshot is ever down, check if it's just after 12:30am GMT. If so, it's probably in the middle of reinstalling - try again in a few minutes. Otherwise, there's either a bug in the codebase that's preventing Apache from starting, or something about the installation has changed that [info]mark hasn't adjusted the Dreamhack installation script for. Let him know. :)

Otherwise, go wild. :)

Saving Keystrokes

Most editors have ways of autocompleting the things you commonly need to type, either built-in or via plugins. One of the more well-known plugins is Emmet, aka Zen Coding. It's available for almost any editor, and is designed to let you enter complicated HTML or CSS expressions with a minimal number of keystrokes. For instance, entering this:


...and then hitting the Zen Coding "expand" key combo gives you this:

<ul class="img-list">
        <a href=""><img src="" alt="" /></a>
        <a href=""><img src="" alt="" /></a>
        <a href=""><img src="" alt="" /></a>

Working with text strings

There are some oddities to the ways static text are handled, due to the translation system. See English-stripping for details: in short, when changing the value of a string in a .text file, you also need to change the string name.

Receiving mail notifications on a Dreamhack

By default, the mail service on your Dreamhack server is turned off. The simplest way to read the mail notifications generated by the site is to examine its mail queue directly: ~/dw/var/taskqueue/dw-task-sendemail. The data is base64-encoded, so you should use base64 -d to decode it.

For example, the following command will print the most recent notification mail to the console:

cd ~/dw/var/taskqueue/dw-task-sendemail; base64 -d `ls -t | head -n1`

Confirming email and creating communities on a Dreamhack

To create a community on a Dreamhack, you have to have a confirmed email address. Since the mail service on your Dreamhack is not configured, the confirmation email generated by the site will not be delivered as one would expect. However, you can read it directly from the mail queue as described above. Once you have retrieved the confirmation link from the unsent message, then you will be able to proceed with creating a community or any other site features that require an account's email address to be confirmed.

This article could really use expansion. If you have information to add, please edit this page!