<?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>2017-10-11T02:29:58Z</updated>
  <dw:journal username="dw_dev" type="community"/>
  <entry>
    <id>tag:dreamwidth.org,2008-04-22:10:200615</id>
    <author>
      <name>Cocoa</name>
    </author>
    <dw:poster user="momijizukamori"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/200615.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=200615"/>
    <title>API wishlist?</title>
    <published>2017-10-11T02:29:58Z</published>
    <updated>2017-10-11T02:29:58Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>58</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 my workplace gives us a chance twice a year to work on anything we want for a few days, work-related or otherwise, and I thought I'd use some of my time to actually get the new API into a state where we can make it live. With that in mind! What endpoints would you like to see implemented? We're making this Swagger/OpenAPI-compliant, so everything takes JSON as arguments and return JSON formatted data. Stuff already on the list to do or partially done:&lt;br /&gt;&lt;br /&gt;/api/v1/users/{username} - GET, shows info about the user (specific info TBD; subset of profile, probably?)&lt;br /&gt;/api/v1/users/{username}/icons - GET, lists icons&lt;br /&gt;/api/v1/users/{username}/icons/{iconid} - GET, returns icon data&lt;br /&gt;/api/v1/users/{username}/journals - GET, returns list of journals with write access.&lt;br /&gt;       -- for now, returns only user's primary journal&lt;br /&gt;/api/v1/journals/{username}/accesslists - GET, list of access lists for journal&lt;br /&gt;/api/v1/journals/{username}/tags - GET, list of tags for journal&lt;br /&gt;/api/v1/journals/{username}/xpostaccounts - GET list of xpost accounts&lt;br /&gt;/api/v1/moods - GET list of moods&lt;br /&gt;/api/v1/commentsettings - GET list of allowed comment settings&lt;br /&gt;/api/v1/journals/{username}/entries - POST new entry, GET list of recent entries&lt;br /&gt;/api/v1/journals/{username}/entries/{id} - POST edit entry, GET specific entry&lt;br /&gt;/api/v1/journals/{username}/files - POST new file&lt;br /&gt;/api/v1/spec - GET, returns a description of the API&lt;br /&gt;&lt;br /&gt;(Mark and D, as usual, get the final say - some stuff people want may end up being security/privacy risks in non-obvious ways)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=200615" 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:194532</id>
    <author>
      <name>kaberett</name>
    </author>
    <dw:poster user="kaberett"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/194532.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=194532"/>
    <title>What does the file manager need before rolling out?</title>
    <published>2017-01-02T01:46:40Z</published>
    <updated>2017-01-02T01:46:40Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>27</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;Hi all!&lt;br /&gt;&lt;br /&gt;I've just had a quick chat with &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; following &lt;a href="http://www.dreamwidth.org/support/see_request?id=35527"&gt;yet another support request&lt;/a&gt; about a GUI for the photo hosting system &lt;a href="https://dreamwidth.org/file"&gt;which does actually exist&lt;/a&gt; but is pretty bare-bones and currently undocumented.&lt;br /&gt;&lt;br /&gt;Mark is comfortable that with a few UI tweaks it could be added to the main menu (Organize --&amp;gt; Manage files, or similar) in order to be discoverable.&lt;br /&gt;&lt;br /&gt;The big thing is "have the HTML for embedding an image provided anywhere other than immediately after uploading it". At this stage adding more features/functionality is not on the cards (unless you're volunteering!), but in the spirit of doing a relatively quick UI polish, is there anything else you'd like to see?&lt;br /&gt;&lt;br /&gt;I'll be filing an issue in a week's time, and hopefully we can get UI tweaks out in the next code push...&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=194532" 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:186511</id>
    <author>
      <email>blog@kepibu.org</email>
      <name>pinterface</name>
    </author>
    <dw:poster user="pinterface"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/186511.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=186511"/>
    <title>RFC: Config Yak Shaving / Bikeshedding</title>
    <published>2016-05-13T21:44:22Z</published>
    <updated>2016-05-14T02:59:12Z</updated>
    <category term="speccing"/>
    <category term="config"/>
    <dw:security>public</dw:security>
    <dw:reply-count>11</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='pinterface' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://pinterface.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://pinterface.dreamwidth.org/'&gt;&lt;b&gt;pinterface&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;The present config system is ... non-ideal.  It should be better.&lt;/p&gt;

&lt;h2&gt;Problems / Pain Points&lt;/h2&gt;

&lt;p&gt;The existing config system is all-or-nothing: if you want to tweak one thing in config.pl&amp;mdash;&lt;tt&gt;$USE_ACCT_CODES&lt;/tt&gt; or &lt;tt&gt;@SCHEMES&lt;/tt&gt;, say&amp;mdash;you have to copy the entire thing, and will no longer get tweaks made to the base config.&lt;/p&gt;

&lt;p&gt;As you might imagine, this makes upgrading painful.  "Oh, they added an option and ... now it's all broken because I don't set it."&lt;/p&gt;

&lt;p&gt;The existing config system also fails to compose.  While it loads three config files&amp;mdash;config-private.pl, config-local.pl, and config.pl&amp;mdash;it only loads one of each.  If you clone, say, dw-nonfree into ext/, it will load config-local.pl from that.  Unless you already have your own config-local.pl in ext/local, in which case it won't use nonfree's at all.  So even though you only wanted to make one or two changes over the baseline, now you're stuck merging all three config-local.pl files manually.&lt;/p&gt;

&lt;p&gt;And just forget about adding bobs-awesome-dw-plugin.  I don't know if anything beyond dw-nonfree exists, but hey, maybe at some point.&lt;/p&gt;

&lt;p&gt;It also brings up the question of what config variable goes into which file?  &lt;tt&gt;@SCHEMES&lt;/tt&gt; and &lt;tt&gt;@LANGS&lt;/tt&gt; are pretty darned site-specific, but they're in config.pl.  &lt;tt&gt;$HOME&lt;/tt&gt; is set to the LJHOME env variable in config-local.pl, but when are you ever going to change that?  (In fact, things are likely to break if you ever did!)&lt;/p&gt;

&lt;h2&gt;Good Things&lt;/h2&gt;

&lt;p&gt;One of the nice things about the existing config system is that it is pure Perl, bringing with it all the flexibility that provides.  (Though some might argue that a turing-complete configuration file is also a drawback.)&lt;/p&gt;

&lt;h2&gt;Proposal&lt;/h2&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Let's move to a Debian-style conf-available/conf-enabled split system, where &lt;em&gt;all&lt;/em&gt; config files are loaded, and then merged.&lt;/p&gt;

&lt;h3&gt;Technical Details&lt;/h3&gt;

&lt;h4&gt;Directory Structure&lt;/h4&gt;

&lt;p&gt;Similar to the existing structure, except the provided config files would be placed into directories called something like "conf-available" or "conf.d".  Config files would be loaded, in lexicographical order, from a single "conf-enabled" directory, which is populated with symlinks to the actual config files.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;etc/conf-available/
&lt;ul&gt;
&lt;li&gt;private.example.pl&lt;/li&gt;&lt;li&gt;local.example.pl&lt;/li&gt;&lt;li&gt;defaults.pl&lt;/li&gt;&lt;li&gt;down-for-maintenance.pl&lt;/li&gt;&lt;li&gt;schemes.pl&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ext/local/conf-available/
&lt;ul&gt;
&lt;li&gt;private.pl&lt;/li&gt;&lt;li&gt;local.pl&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ext/dw-nonfree/conf-available/
&lt;ul&gt;
&lt;li&gt;nonfree.pl&lt;/li&gt;&lt;li&gt;schemes.pl&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;etc/conf-enabled/
&lt;ul&gt;
&lt;li&gt;00-private.pl &amp;rarr; $LJHOME/ext/local/conf-available/private.pl&lt;/li&gt;
&lt;li&gt;10-local.pl &amp;rarr; $LJHOME/ext/local/conf-available/local.pl&lt;/li&gt;
&lt;li&gt;50-nonfree.pl &amp;rarr; $LJHOME/ext/dw-nonfree/conf-available/nonfree.pl&lt;/li&gt;
&lt;li&gt;50-free-schemes.pl &amp;rarr; $LJHOME/etc/conf-available/schemes.pl&lt;/li&gt;
&lt;li&gt;50-nonfree-schemes.pl &amp;rarr; $LJHOME/ext/dw-nonfree/conf-available/schemes.pl&lt;/li&gt;
&lt;li&gt;90-defaults.pl &amp;rarr; $LJHOME/etc/conf-available/defaults.pl&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Config Files&lt;/h4&gt;

&lt;p&gt;Config files would each return a hash of values.  It would be the responsibility of the config system to merge them all together appropriately.  Essentially, this would be done in the same manner as used by &lt;a href="http://search.cpan.org/~csson/Config-FromHash-0.0800/lib/Config/FromHash.pm"&gt;&lt;tt&gt;Config::FromHash&lt;/tt&gt;&lt;/a&gt;.  However, because a number of config values are defaulted using prior values, it would be necessary to provide a dynamically-scoped variable containing the config-as-loaded-thus-far, to support that (hopefully that will be made clear by the examples).&lt;/p&gt;

&lt;pre&gt;# ext/local/conf-available/private.pl
{
    DOMAIN =&amp;gt; "example.dreamhack.net",
    DBINFO =&amp;gt; {
        # ...
    },
    # ...
};
&lt;/pre&gt;

&lt;pre&gt;# ext/local/conf-available/local.pl
{
    IS_DEV_SERVER =&amp;gt; 1,
    SITENAME =&amp;gt; "My Awesome DW Site",
    # ...
};
&lt;/pre&gt;

&lt;pre&gt;# ext/dw-nonfree/conf-available/schemes.pl

use DW::Config::FromHash qw( $CONF );

# Manually append schemes
$CONF-&amp;gt;{SCHEMES} = [
    @{$CONF-&amp;gt;{SCHEMES}},
    { scheme =&amp;gt; 'neato', 'title' =&amp;gt; 'Neato' },
    # ...
];

{
    # ...
    # Or, a potentially abstracted way to add things
    add_SCHEMES =&amp;gt; [
        { scheme =&amp;gt; 'neato', 'title' =&amp;gt; 'Neato' },
    ],
    # ...
};
&lt;/pre&gt;

&lt;pre&gt;# etc/conf-available/defaults.pl

use DW::Config::FromHash qw( $CONF );

my $www = "www.{$CONF-&amp;gt;{DOMAIN}}";
{
    DOMAIN_WEB =&amp;gt; $www,
    SITEROOT =&amp;gt; "http://$www",
    # ...
};
&lt;/pre&gt;

&lt;h4&gt;Merging, and Post-Merge&lt;/h4&gt;

&lt;p&gt;As mentioned, the config files would be loaded and merged in a manner similar&amp;mdash;if not entirely identical&amp;mdash;to Config::FromHash.&lt;/p&gt;

&lt;p&gt;After the config files are loaded and merged, it would be the responsibility of the Config system to populate all of the appropriate variables in the LJ and DW packages.&lt;/p&gt;

&lt;h3&gt;Pros&lt;/h3&gt;

&lt;p&gt;Much simpler to use!  You can create a file to override a single value and re-use the existing configuration for everything else.  And it works more like you'd expect if you're used to conf.d directories.&lt;/p&gt;

&lt;p&gt;Easier manual testing.  While automated tests are obviously best, if you need to test something works without and without X service, you can add and remove a symlink to a conf file enabling that service, restart apache, and poke at things.&lt;/p&gt;

&lt;p&gt;Paves the way for better support of plopping things into ext/ and having it work.  No more "copy these config values into your existing file", just symlink and go.&lt;/p&gt;

&lt;h3&gt;Cons&lt;/h3&gt;

&lt;p&gt;Harder to fully comprehend.  It's more files floating around, more state to keep track of (-available, -enabled, symlinks galore!).&lt;/p&gt;

&lt;p&gt;It's dramatically different, and converting an existing installation would be a pain.  (But see below.)&lt;/p&gt;

&lt;p&gt;Config reloading (see start_request_reload in Config.pm) is more involved.  Far more files to stat, and a lot more work to reload them all.  One possibility would be to drop config reloading: how often are config changes made that don't involve a code change that would necessitate restarting apache anyway?  (&lt;tt&gt;$SERVER_DOWN&lt;/tt&gt; maybe?  But that could easily be converted into a flag file check.)&lt;/p&gt;

&lt;h3&gt;Not Breaking Existing Installations&lt;/h3&gt;

&lt;p&gt;It would be preferable to avoid breaking existing installations.  I think this is possible: after performing the above, follow that up by running the current config system.  While that does mean having multiple config systems running, it gives people time to migrate at their leisure, rather than breaking things immediately.&lt;/p&gt;

&lt;p&gt;After some time with the new system, we could then add deprecation notices in the event the old system is still in use.  After sufficient time has passed, we could then eliminate it entirely.&lt;/p&gt;

&lt;p&gt;Or, we could treat it like ripping off a band-aid and break things and be all "hey, sorry about the one-time pain but we're eliminating the smaller pains you almost never have anyway because really how often do we change these things?".&lt;/p&gt;

&lt;h3&gt;Why Not Just &lt;tt&gt;//=&lt;/tt&gt; Everything?&lt;/h3&gt;

&lt;p&gt;One thing you might be thinking is "Well, why not just &lt;tt&gt;//=&lt;/tt&gt; everything in the default config*.pl files?&lt;/p&gt;

&lt;p&gt;That's definitely much easier to implement!  And it brings with it many of the same benefits&amp;mdash;people could simply add their overrides to config-local.pl or config-private.pl and never need to create or edit a config.pl (&lt;a href="https://github.com/dreamwidth/dw-free/commit/4f8258ab4c573be42fbf46ad8590a183931fc9cc"&gt;4f8258a&lt;/a&gt; does that for &lt;tt&gt;@LANGS&lt;/tt&gt;, it's totally viable).&lt;/p&gt;

&lt;p&gt;One of the drawbacks of that approach is that it requires a developer updating the default config*.pl files to never make a mistake.  Accidentally used &lt;tt&gt;=&lt;/tt&gt; instead?  Tried to use &lt;tt&gt;//=&lt;/tt&gt; to set a list, even though &lt;tt&gt;//=&lt;/tt&gt; only works for scalars?  Well, now things are quietly broken in other people's installs.  By automating the merge behavior, we can largely avoid that.  Whether the additional complication of a split config brings enough benefits over conditional sets to be worthwhile is another matter.&lt;/p&gt;

&lt;p&gt;Thoughts?  Questions?  Alternative proposals?&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=186511" 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:181669</id>
    <author>
      <name>brainwane</name>
    </author>
    <dw:poster user="brainwane"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/181669.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=181669"/>
    <title>Android (mobile) client</title>
    <published>2016-01-13T13:52:45Z</published>
    <updated>2016-01-13T13:53:19Z</updated>
    <category term="speccing"/>
    <category term="mobile"/>
    <dw:mood>thankful</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='brainwane' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://brainwane.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://brainwane.dreamwidth.org/'&gt;&lt;b&gt;brainwane&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://marnanel.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://marnanel.dreamwidth.org/'&gt;&lt;b&gt;marnanel&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; has started working on an Android client for Dreamwidth.  &lt;a href="https://marnanel.dreamwidth.org/330693.html"&gt;Here's their care-and-feeding-of-marnanel post&lt;/a&gt;, and &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://dwim.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/community.png' alt='[community profile] ' width='16' height='16' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://dwim.dreamwidth.org/'&gt;&lt;b&gt;dwim&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; is the community about this Android work specifically. &lt;a href="https://dwim.dreamwidth.org/297.html"&gt;Their welcome post&lt;/a&gt; asks some questions and invites discussion, about UI, caching, whether anyone would like to help, and more.&lt;br /&gt;&lt;br /&gt;I'm not involved with the work -- just signal-boosting. I know &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://marnanel.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://marnanel.dreamwidth.org/'&gt;&lt;b&gt;marnanel&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; to have experience with writing mobile applications. In fact &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://marnanel.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://marnanel.dreamwidth.org/'&gt;&lt;b&gt;marnanel&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; was the maintainer of Joule, a mobile LiveJournal client (&lt;span style='white-space: nowrap;'&gt;&lt;a href='https://joule.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/community.png' alt='[community profile] ' width='16' height='16' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://joule.dreamwidth.org/'&gt;&lt;b&gt;joule&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=181669" 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:179838</id>
    <author>
      <name>Chris Boyle</name>
    </author>
    <dw:poster user="shortcipher"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/179838.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=179838"/>
    <title>QuickReply error handling: choice of solutions</title>
    <published>2015-11-08T13:01:56Z</published>
    <updated>2015-11-08T13:01:56Z</updated>
    <category term="speccing"/>
    <category term="questions"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='shortcipher' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://shortcipher.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://shortcipher.dreamwidth.org/'&gt;&lt;b&gt;shortcipher&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/dreamwidth/dw-free/issues/1622"&gt;Issue #1622: AJAX quick* reply when you can't comment is unsubmittable&lt;/a&gt; - your thoughts please? (Sorry it got so long and wordy.)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=179838" 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:177699</id>
    <author>
      <name>kaberett</name>
    </author>
    <dw:poster user="kaberett"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/177699.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=177699"/>
    <title>More granular community permissions: mocked-up screenshots</title>
    <published>2015-09-26T15:41:15Z</published>
    <updated>2015-09-26T15:41:15Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>26</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;These are not-as-quick-as-I'd-like-but-definitely-dirty, and are based on &lt;a href="http://dw-dev.dreamwidth.org/177456.html"&gt;our previous discussion about specification and workflows&lt;/a&gt;. It's been a while since that post, so I'm making this one for the pictures; in summary, there are two options for how to go about managing this.&lt;br /&gt;&lt;br /&gt;In all cases, I should have used "Community control" rather than "Additional Privileges" but I... absolutely could not face going back and editing everything &lt;i&gt;again&lt;/i&gt; when I realised, sorry. And in all cases I haven't provided complete lists of privileges/privilege bundles -- those exist in comments on the previous post, and will get put into the final composite spec properly. (I... am being pretty slapdash about this, sorry, but if I try to get everything Just Right at this stage what will actually happen is I'll spend the next six months hyperventilating about how y'all will kick me off the project if I use the wrong font and nothing more will happen, so this is a sketch for the idea of the thing, sorry.)&lt;br /&gt;&lt;br /&gt;Also in all cases, there should be another header row under "non-members", but I ran out of steam, see above, sorry.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Option 1: tickbox matrices as far as the eye can see&lt;/h2&gt;&lt;br /&gt;This is the option laid out in the last post: replace "Administrator" and "Moderator" checkboxes with a "Community Control"/"Additional Privs" box, and an Additional Privs/Community Control page with a bunch of tickies (with "Administrator" acting as a master ticky, though that isn't illustrated here).&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/177699.html#cutid1"&gt;Read more...&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;h2&gt;Option 2: Define community control roles&lt;/h2&gt;&lt;br /&gt;This was suggested in comments on the previous post, as a way of creating custom roles/priv bundles as required by the community. In addition to the Additional Privs/Community Control link, /communities/list would then also have "Manage Roles" as an option. Which members were displayed on the Additional Privs/Community Control page would again be controlled by the checkbox so labelled on the Edit Community Members page, as for option 1.&lt;br /&gt;&lt;br /&gt;&lt;span class="cut-wrapper"&gt;&lt;span style="display: none;" id="span-cuttag___2" 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/177699.html#cutid2"&gt;Read more...&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___2" aria-live="assertive"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Documentation&lt;/h2&gt;&lt;br /&gt;Priv bundles will need explaining. This could happen on-page, in dedicated FAQs, or both. (Probably both.)&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Your thoughts?&lt;/h2&gt;&lt;br /&gt;Comments welcome,  but have an easy poll:&lt;br /&gt;&lt;div&gt;&lt;a href="https://www.dreamwidth.org/poll/?id=16996"&gt;View Poll: #16996&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Thanks heaps for your patience, folk!&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=177699" 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:177456</id>
    <author>
      <name>kaberett</name>
    </author>
    <dw:poster user="kaberett"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/177456.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=177456"/>
    <title>Draft specification: more granular community permissions</title>
    <published>2015-09-13T10:01:34Z</published>
    <updated>2015-09-13T10:29:55Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>37</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;This outline is based on &lt;a href="http://dw-dev.dreamwidth.org/175773.html"&gt;previous discussion&lt;/a&gt; about how this might work. Currently the best option seems to be a pretty unwieldy matrix: if you've got further suggestions please do let me know. Because it's unwieldy, the rest of this is going under a cut.&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/177456.html#cutid1"&gt;Read more...&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;h2&gt;Points for discussion&lt;/h2&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt; This is going to be &lt;i&gt;enormous&lt;/i&gt;. Suggestions for how to minimise scrolling?&lt;br /&gt;&lt;li&gt; It &lt;i&gt;is&lt;/i&gt; possible to duplicate settings between the various pages mentioned in section 1 and the proposed new privs management interface; however, I suggest that's prone to error and confusion and might therefore be better off not happening.&lt;br /&gt;&lt;li&gt; I'm not convinced that we actually want the last two tickies on my big list there; I'm not convinced there's any point in letting people who aren't administrators have the ability to grant and revoke administrator status :-p&lt;br /&gt;&lt;li&gt; Are there privileges missing off that list that you can think of? Are there points you think should be subdivided? (I am thinking particularly of edit/delete/flag posts made to the community, and un/screening comments: I can see a scenario in which you want people to be able to screen comments until someone with more seniority comes along and drafts a response and &lt;i&gt;only then&lt;/i&gt; unscreens it, to minimise flamewars; ditto un/freezing.&lt;br /&gt;&lt;li&gt; Terminology: "Additional Privs" is a placeholder; suggestions for something clearer/more user-friendly enthusiastically welcomed.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=177456" 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:175773</id>
    <author>
      <name>kaberett</name>
    </author>
    <dw:poster user="kaberett"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/175773.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=175773"/>
    <title>Brainstorming specification: granular community permissions</title>
    <published>2015-08-07T12:17:38Z</published>
    <updated>2015-08-12T22:37:43Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>17</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;Community admins frequently want to delegate specific tasks to specific users; for example, I'm generally responsible for tagging &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://dw-suggestions.dreamwidth.org/profile'&gt;&lt;img src='https://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='https://dw-suggestions.dreamwidth.org/'&gt;&lt;b&gt;dw_suggestions&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; but for no other tasks; it's common in RP communities for a particular user to be designated the "coding admin", responsible for layout and styling.&lt;br /&gt;&lt;br /&gt;In the case of tagging, there have been several suggestions about &lt;a href="https://dw-suggestions.dreamwidth.org/394718.html"&gt;making tagging permissions more granular&lt;/a&gt; and for that matter &lt;a href="https://dw-suggestions.dreamwidth.org/1350722.html"&gt;more obvious to the user&lt;/a&gt;. However, even these suggestions end up breaking down permissions to a choice of: admins only, entry author and admins, members only, anyone.&lt;br /&gt;&lt;br /&gt;In practice this means that either (a) work gets concentrated on a relatively small number of people who aren't necessarily best placed for the job, or (b) admin status gets given to a large number of people, none of whom need all the permissions they've been granted. It would be much better if it were possible for admins to grant specific permissions to specific users as required, rather than the broad-brush systems currently in place.&lt;br /&gt;&lt;br /&gt;The difficult (as ever!) is designing a suitable system it in such a way that it avoids being overly confusing and leading to somebody giving somebody else powers that they didn't mean to delegate, &lt;i&gt;and&lt;/i&gt; avoids decision fatigue.&lt;br /&gt;&lt;br /&gt;The purpose of this post is to hammer out &lt;b&gt;how more granular permissions might work&lt;/b&gt;, both back-end and front-end (in terms of what the options presented to community admins look like). Please do drop thoughts/suggestions/requirements/etc in comments; discussion positively encouraged.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ETA&lt;/b&gt; &lt;a href="http://wiki.dreamwidth.net/wiki/index.php/Community_maintainers"&gt;wiki page that triiiies to provide a list of what all community maintainers do&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=175773" 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:154266</id>
    <author>
      <name>Darael</name>
    </author>
    <dw:poster user="darael"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/154266.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=154266"/>
    <title>On clients and APIs</title>
    <published>2014-04-20T01:14:21Z</published>
    <updated>2014-04-20T01:14:21Z</updated>
    <category term="xml-rpc"/>
    <category term="speccing"/>
    <dw:mood>optimistic</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>52</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='darael' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://darael.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://darael.dreamwidth.org/'&gt;&lt;b&gt;darael&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dreamwidth's APIs are poorly documented (people basically have to work off docs for old versions of LJ's APIs). They're also missing key features, like comment handling for more than backups.&lt;br /&gt;&lt;br /&gt;I've been told there have been "some internal conversations about deprecating the XML-RPC API -- keeping it for backwards compatability, but moving to a much more modern second-gen API", but that nobody has had both the time and the inclination to work on designing such a thing.&lt;br /&gt;&lt;br /&gt;Well, this is me, volunteering. To that end, I'm looking for input on what exactly such a new API needs to provide, and whether there's a preferred underlying technology to build on (&lt;em&gt;exempli gratia&lt;/em&gt;, stick with XML-RPC? Change to SOAP? Use JSON? RESTful or not? &lt;em&gt;et cetera&lt;/em&gt;). What I'm getting at here is that I'm entirely happy to take point, as it were, and to make decisions (especially where there's little or no consensus and someone has to make the call), draw up specs, write docs, and so forth, but the result is highly unlikely to be a &lt;em&gt; really useful&lt;/em&gt; API unless I get input from more sources than my own experience and looks at the code.&lt;br /&gt;&lt;br /&gt;At this stage, therefore, I want everything you, the reader, have to say on the subject. Use cases especially.&lt;br /&gt;&lt;br /&gt;Go.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=154266" 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>Res facta quae tamen fingi potuit</name>
    </author>
    <dw:poster user="pauamma"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/111880.html"/>
    <link rel="self" type="text/xml" href="https://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="config"/>
    <category term="other dw sites"/>
    <category term="speccing"/>
    <category term="dreamhacks"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='pauamma' style='white-space: nowrap;' class='ljuser'&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;&lt;br /&gt;&lt;br /&gt;$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="https://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:107773</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/107773.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=107773"/>
    <title>first pass at redoing Account Settings tabs</title>
    <published>2012-01-31T08:30:24Z</published>
    <updated>2012-01-31T11:31:22Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>11</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;So a while back I did an open card sort for people to help us reorganize the Account Settings tabs. The project never went anywhere, because there was &lt;em&gt;zero&lt;/em&gt; agreement among the answers: usually when you do an open card sort, things will fall into two or three different major sets of buckets and you can work from there, but this one was all over the place and I despaired at ever doing anything with it.&lt;br /&gt;&lt;br /&gt;The settings overrun has gotten much worse since then, though, and it's starting to be more urgent to redo them. I've taken a first stab at what I think is a logical grouping; the items inside each tab category are &lt;em&gt;not&lt;/em&gt; organized in any way (just reorganizing the order things are listed in will make a lot of difference, I think) but this is my first pass at redoing the groupings.&lt;br /&gt;&lt;br /&gt;The major changes (in addition to reordering the tabs themselves) are the consolidation of the Account and History tabs and the Mobile and Other Sites tabs, and the splitting of both Display and Privacy into Journal vs Site; this means we keep the number of tabs constant but there are fewer items in each tab. That, I think, will take care of 90% of the "auuugh options overload", although some of the things are very borderline as to which tab they should go on. (But it's not like it's any better &lt;em&gt;now&lt;/em&gt;.) I've included both the label that's displayed to the user (although when I started out I was renaming some of them to be more clear) and the name of the settings package in the code.&lt;br /&gt;&lt;br /&gt;Thoughts? Major objections? Once we go through these I'll work on reordering the settings within each tab, and put up a version on my 'hack for people to see in action.&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/107773.html#cutid1"&gt;proposed new tabs/organization&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=107773" 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:100363</id>
    <author>
      <name>Res facta quae tamen fingi potuit</name>
    </author>
    <dw:poster user="pauamma"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/100363.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=100363"/>
    <title>JS-based S2 editor with syntax highlighting?</title>
    <published>2011-10-15T13:12:29Z</published>
    <updated>2011-10-15T13:12:29Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='pauamma' style='white-space: nowrap;' class='ljuser'&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;&lt;br /&gt;&lt;br /&gt;Can someone who groks JS better than I do check whether &lt;a href="http://code.livejournal.org/trac/livejournal/changeset/20330/trunk"&gt;http://code.livejournal.org/trac/livejournal/changeset/20330/trunk&lt;/a&gt; and &lt;a href="http://code.livejournal.org/trac/livejournal/changeset/20331/trunk"&gt;http://code.livejournal.org/trac/livejournal/changeset/20331/trunk&lt;/a&gt; is a browser-based syntax-highlighting S2 editor? (Or part of one, maybe?) I kinda want to submit a suggestion for something similar, if it is, but I can't do that without having some idea of what it does.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=100363" 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:99459</id>
    <author>
      <name>Lee</name>
    </author>
    <dw:poster user="randomling"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/99459.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=99459"/>
    <title>Bug 2886</title>
    <published>2011-10-09T15:48:51Z</published>
    <updated>2011-10-09T15:48:51Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='randomling' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://randomling.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://randomling.dreamwidth.org/'&gt;&lt;b&gt;randomling&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So I'm working on &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=2886"&gt;Bug 2886,&lt;/a&gt; and for most of it I have a working patch. (Back end, at least - and the front end looks like it will be fairly easy.)&lt;br /&gt;&lt;br /&gt;I have one question on the spec here, which I wanted to open out to the wider community.&lt;br /&gt;&lt;br /&gt;We're allowing title attributes (ie: hover text) for the user-defined links that show up in the sidebar. Showing them on links was, once I had much hand-holding through the codebase and figuring out what in hell I was doing, not that hard. However - that particular widget also allows users to define headings (by simply plugging in a title and no link).&lt;br /&gt;&lt;br /&gt;It turns out it's a much harder problem to figure out how to allow hover text over the headings without breaking everything else, 'cause that refers to the way all the headings for the modules are printed, and hover text is (on most of them) an attribute that will never get used. So it's going to end up with passing a lot of empty strings back to the appropriate function, if I implement this.&lt;br /&gt;&lt;br /&gt;So my question is: should I implement the possibility of hover text over headings? What do you guys think? Is that worth the time and effort and rejigging of the codebase to allow it?&lt;br /&gt;&lt;br /&gt;It might perhaps be useful to have such an attribute available, should we decide to make more hover-text-related changes in the future.&lt;br /&gt;&lt;br /&gt;Anyway - please let me know your thoughts.&lt;br /&gt;&lt;br /&gt;(Also, I'm feeling anxious that I have been confusing or unclear. Do let me know if there's anything you need me to clarify or explain further.)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=99459" 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:89508</id>
    <author>
      <name>Res facta quae tamen fingi potuit</name>
    </author>
    <dw:poster user="pauamma"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/89508.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=89508"/>
    <title>Use of non-standard port numbers in sites running Dreamwidth code</title>
    <published>2011-05-25T17:38:56Z</published>
    <updated>2011-05-25T17:41:43Z</updated>
    <category term="install issues"/>
    <category term="other dw sites"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>8</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='pauamma' style='white-space: nowrap;' class='ljuser'&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;&lt;br /&gt;&lt;br /&gt;Currently, Dreamwidth supports (somewhat half-heartedly and clumsily) sites with user-visible URLs that look like http://www.example.com:6809/, and I've been wondering about a few things:&lt;br /&gt;&lt;br /&gt;1- How many sites running Dreamwidth code actually use that feature? How many couldn't run without it? &lt;br /&gt;&lt;br /&gt;2- If you're considering running a Dreamwidth-based site or are working on one, would it or does it need that feature to run?&lt;br /&gt;&lt;br /&gt;3- If neither of the above applies to you, do you find that feature important, pleasant, infuriating, or neither? Why?&lt;br /&gt;&lt;br /&gt;(Note: I'm not speaking of hosted Dreamhacks here, since even those that use another port internally are mapped to port 80 using Perlbal.)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=89508" 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:89013</id>
    <author>
      <name>kareila</name>
    </author>
    <dw:poster user="kareila"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/89013.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=89013"/>
    <title>stable releases</title>
    <published>2011-05-20T14:53:15Z</published>
    <updated>2011-05-20T14:53:15Z</updated>
    <category term="install issues"/>
    <category term="mercurial"/>
    <category term="project management"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>16</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://dw-dev.dreamwidth.org/88828.html"&gt;This recent post&lt;/a&gt; brought to my attention the fact that it really ought to be simpler for sites using DW code in production to easily keep up with stable milestones of DW development, without having to look through all of our repositories for the most recent milestone tags. Besides, the milestone tags are tied to code pushes on dreamwidth.org and not necessarily an indication of stability!&lt;br /&gt;&lt;br /&gt;I propose the following mechanism:&lt;br /&gt;&lt;br /&gt;1. Add a "stable" tag to all of our shared repositories.  We already do code freezes where we only put in changes to fix bugs that are uncovered immediately after a code push.  When the code freeze is lifted, move the "stable" tag to the most recent milestone and leave it there until after the next push/freeze cycle.  For example, the most recent cycle would have moved the stable tag from 0.21.2 to 1.0.1 once it became clear there would be no 1.0.2 needed.&lt;br /&gt;&lt;br /&gt;2. Add a new site config parameter (something like DW_STABLE) that indicates whether a site is only accepting our "stable" changes.&lt;br /&gt;&lt;br /&gt;3. Change the behavior of -update in bin/vcv to only update as far as the "stable" tag if DW_STABLE is set.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=89013" 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:84331</id>
    <author>
      <name>wyntarvox</name>
    </author>
    <dw:poster user="wyntarvox"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/84331.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=84331"/>
    <title>New Event and Related Subscriptions</title>
    <published>2011-03-07T09:02:53Z</published>
    <updated>2011-03-07T09:02:53Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='wyntarvox' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://wyntarvox.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://wyntarvox.dreamwidth.org/'&gt;&lt;b&gt;wyntarvox&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am working on &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=3479"&gt;bug 3479&lt;/a&gt;.  Basically, the &lt;a href="http://dw-suggestions.dreamwidth.org/501857.html"&gt;suggestion&lt;/a&gt; came in to have subsequent notifications for edited comments simply have a message saying that the comment was edited, the time, and the reason, rather than repeating the body of the comment as they currently do now.&lt;br /&gt;&lt;br /&gt;I set out to make edited comments an event on its own (well, a sub-event of LJ::Event::JournalNewComment).  Notifications are built on-the-fly using the live comment object, so adjusting the display for an edited comment to only have the time/reason, will make the original notification do the same.  &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; and I bandied about the idea of using the event time and either compare it to the edit time or the original comment time, but both of these had drawbacks.&lt;br /&gt;&lt;br /&gt;Event vs. edit time meant only the last notification of an edit would be the short version.  Event vs. original comment time meant we'd have to have an amount of room-for-error between the comment being posted and the event firing, which defeats the purpose really.  A big reason for the suggestion was to prevent multiple identical notifications when someone posts a comment, notices a typo, edits, all within our window of room-for-error.&lt;br /&gt;&lt;br /&gt;So, we came back to it being necessary to have this as a separate event.  However, that also means needing a separate subscription for comment edits.  There are a few options:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Have a separate subscription for comment edits (maybe people would like this and don't care about being notified re: edits?)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Special-case comment edits to piggy back off subscriptions for new comment edits&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Build something more robust to let any event piggy back off the subscriptions of another event&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Thoughts, comments, direction?  Please?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=84331" 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:81293</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/81293.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=81293"/>
    <title>Service Document?</title>
    <published>2011-01-25T08:51:23Z</published>
    <updated>2011-01-25T08:51:23Z</updated>
    <category term="xml-rpc"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</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;Coming back with another question re: service documents, which was brought up in the comments to my earlier entry. &lt;br /&gt;&lt;br /&gt;Is it better to consider the service document on a per-journal, or on a per-account basis? The service document is a URL you enter for your client to discover which URLs to use to post to a journal or a community.&lt;br /&gt;&lt;br /&gt;I have seen two separate sets of suggestions, one that says to put the service document in:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dreamwidth.org/interface/atom"&gt;http://www.dreamwidth.org/interface/atom&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which lists your journal as well as any communities you have posting access to.&lt;br /&gt;&lt;br /&gt;The other train of thought says to to put the service document in:&lt;br /&gt;&lt;a href="http://username.dreamwidth.org/interface/atom"&gt;http://username.dreamwidth.org/interface/atom&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;And list only the collections (entries and eventually media such as images) that you can manipulate with that particular journal.&lt;br /&gt;&lt;br /&gt;In both cases, entry posting will under journal space, such as &lt;a href="http://username.dreamwidth.org/interface/atom/entries/1"&gt;http://username.dreamwidth.org/interface/atom/entries/1&lt;/a&gt;, etc. &lt;br /&gt;&lt;br /&gt;I'm going back and forth on this one. I currently have the latter implemented, but am beginning to talk myself into the former. Before I tweak my code, though, I'm interested in hearing any more informed opinions on which option is the more standard.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On that note, the atom interface code is up on my &lt;a href="http://www.afuna.dreamhack.afunamatata.com/"&gt;public dev server&lt;/a&gt;, which is open for testing for anyone interested in trying it out with any clients you use. And if someone can point me to your favored client or service which uses APP, I'd like to try testing that on my own.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=81293" 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:79846</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/79846.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=79846"/>
    <title>Atom Publishing Protocol</title>
    <published>2011-01-12T04:55:14Z</published>
    <updated>2011-01-12T04:55:14Z</updated>
    <category term="xml-rpc"/>
    <category term="speccing"/>
    <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've been working on updating our implementation of the Atom Publishing Protocol, and have put up &lt;a href="http://fu.dreamwidth.org/7976.html"&gt;an entry discussing the new implementation&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Happy to hear any concerns! In particular, any huge objections to breaking it for clients used to the old verison of the atom interface? And thoughts on using the &lt;a href="http://yourusername.dreamwidth.org/interface/atom"&gt;http://yourusername.dreamwidth.org/interface/atom&lt;/a&gt;, rather than &lt;a href="http://www.dreamwidth.org/interface/atom"&gt;http://www.dreamwidth.org/interface/atom&lt;/a&gt;? The former would make it easier to implement community support.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=79846" 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:78628</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/78628.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=78628"/>
    <title>Updates to "checkfriends" protocol mode</title>
    <published>2011-01-01T05:15:41Z</published>
    <updated>2011-01-04T01:42:33Z</updated>
    <category term="speccing"/>
    <category term="xml-rpc"/>
    <category term="documentation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</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;Working on some long-overdue &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=2322"&gt;updates to the checkfriends protocol mode&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Changes not yet live on the site but should be for future code push, but here's the run down:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;checkfriends&lt;/code&gt; no longer works. Instead, use &lt;code&gt;checkforupdates&lt;/code&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;required arguments to &lt;code&gt;checkforupdates&lt;/code&gt; is only authentication information&lt;/li&gt;&lt;br /&gt;&lt;li&gt;optional argument &lt;code&gt;lastupdate&lt;/code&gt; (in "0000-00-00 00:00:00" format). This is the last update time you have, from previous calls to checkforupdates&lt;/li&gt;&lt;br /&gt;&lt;li&gt;optional argument &lt;code&gt;filter&lt;/code&gt;. This is the name of a content filter whose members you want to filter to.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;return value: &lt;code&gt;new&lt;/code&gt;: 1 or 0. 1 only if you pass in a &lt;code&gt;lastupdate&lt;/code&gt; and there are new items since then. 0 in all other cases.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;return value: &lt;code&gt;interval&lt;/code&gt;: number of seconds before you can next check for updates. If you check before time expires, you'll get a cached value&lt;/li&gt;&lt;br /&gt;&lt;li&gt;return value: &lt;code&gt;lastupdate&lt;/code&gt;: time someone last updated, in "0000-00-00 00:00:00" format&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;It's almost exactly the same as checkfriends; the only differences from the frontend are the name change, and replacing the &lt;code&gt;mask&lt;/code&gt; argument with a &lt;code&gt;filter&lt;/code&gt; argument because the trustmask is no longer relevant since we split up access and subscription.&lt;br /&gt;&lt;br /&gt;ETA: Added preliminary &lt;a href="http://wiki.dwscoalition.org/notes/XML-RPC_Method:_checkforupdates"&gt;documentation on the wiki&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=78628" 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:78526</id>
    <author>
      <name>fu</name>
    </author>
    <dw:poster user="fu"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/78526.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=78526"/>
    <title>Constants Namespaces in .tt files</title>
    <published>2011-01-01T04:55:10Z</published>
    <updated>2011-01-01T04:55:10Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</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'm looking for feedback on &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=3170"&gt;Bug 3170: Constant Namespaces in DW::Template&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically, right now our constants in .tt files can be found under email.*, site.*, roots.*, etc, and the more constants we have, the more likely it is that we'll accidentally have a namespace collision. So I would like to have all constants be under just the site namespace.&lt;br /&gt;&lt;br /&gt;That is, instead of using:&lt;br /&gt;email.webmaster&lt;br /&gt;roots.site&lt;br /&gt;site.name&lt;br /&gt;&lt;br /&gt;We can use:&lt;br /&gt;site.email.webmaster&lt;br /&gt;site.root&lt;br /&gt;site.name&lt;br /&gt;&lt;br /&gt;In some cases, it's longer, but the additional clarity should be worth the extra characters. (Plus it would also make it easier to avoid mistakes -- I found several instances of dw.* in the files, which are blank, but luckily cause no issues)&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/78526.html#cutid1"&gt;List of proposed new namespace&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;br /&gt;&lt;br /&gt;I'd like to point out, in particular,&lt;br /&gt;site.name = $LJ::SITENAME&lt;br /&gt;site.names.short = $LJ::SITENAMESHORT&lt;br /&gt;site.names.abbrev = $LJ::SITENAMEABBREV&lt;br /&gt;&lt;br /&gt;which suffers from inconsistency/needing to be aware of the technical limitations.&lt;br /&gt;&lt;br /&gt;An alternative:&lt;br /&gt;site.name.site = $LJ::SITENAME&lt;br /&gt;site.name.short = $LJ::SITENAMESHORT&lt;br /&gt;site.name.abbrev = $LJ::SITENAMEABBREV&lt;br /&gt;&lt;br /&gt;But that suffers from the problem that the most commonly used variable, site.name, becomes long/ridiculous/redundant.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=78526" 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:66048</id>
    <author>
      <name>kareila</name>
    </author>
    <dw:poster user="kareila"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/66048.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=66048"/>
    <title>LJSV-1068 redux</title>
    <published>2010-07-24T07:43:59Z</published>
    <updated>2010-07-24T08:18:34Z</updated>
    <category term="coding"/>
    <category term="speccing"/>
    <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 appreciate all the feedback I got on &lt;a href="http://dw-dev.dreamwidth.org/65650.html"&gt;my previous post&lt;/a&gt;.  Here's my thinking based on the comments there:&lt;br /&gt;&lt;br /&gt;Tag list: wait for the new update page.  The LJ implementation looks pretty buggy anyway, judging from initial reports.&lt;br /&gt;&lt;br /&gt;Tag search: yes, we should make a GUI the primary interface to tag search on our site.  It should:&lt;br /&gt;&lt;br /&gt; * support complex boolean operations&lt;br /&gt; * use either a POST to avoid the URL parsing problem, or an entirely new URL format (since you can't bookmark the result of a POST), or possibly both&lt;br /&gt; * allow you to search for tags in more journals than just your own, as a paid feature (which means it should be a site page like "Manage Tags", not a journal page)&lt;br /&gt; * allow further refinement of results based on date range and/or security level, possibly even mood (yes, that has already been suggested elsewhere)&lt;br /&gt;&lt;br /&gt;However, that should be a new bug (or several bugs), perhaps more accurately titled "Metadata Search" to complement the existing Content Search.  It need not immediately replace the basic tag search we inherited from LJ, which was never so ambitious.&lt;br /&gt;&lt;br /&gt;A codemerge from LJ, if possible, would close the existing bug (which came from suggestions) for fixing the basic URL search in the current syntax, with added support requested for using ALL as the keyword instead of AND (although we should allow both for compatibility).  If our code has changed too much to merge, or if it proves difficult to take only that part of the change and leave out the tag list code, we could reconsider whether it's worth the effort - but compared to the "all that and a pony" spec outlined above, it seems simple enough.&lt;br /&gt;&lt;br /&gt;I think this approach would give us a usable (if "ugly") short term solution with minimal effort for the most basic use case, plus space to plan for a better long term solution in the future.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=66048" 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:65650</id>
    <author>
      <name>kareila</name>
    </author>
    <dw:poster user="kareila"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/65650.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=65650"/>
    <title>LJSV-1068</title>
    <published>2010-07-21T15:38:35Z</published>
    <updated>2010-07-21T15:38:35Z</updated>
    <category term="most wanted"/>
    <category term="coding"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>34</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;LJ just unveiled two features I've wanted here but haven't known how to implement, which are a tag list on the update page, and searching for multiple tags using AND instead of OR.&lt;br /&gt;&lt;br /&gt;For the first, am I to assume that the new update page will support this, so we don't need to bother with trying to patch the feature into the old update page?  Or perhaps rather that the new update page won't support it immediately, but it will be such a radical change that we shouldn't even bother working on it until then?  (I really want this ASAP, and it has appeared on "most wanted".)&lt;br /&gt;&lt;br /&gt;For the second, should we roll our own fix adopting LJ's URL syntax, or attempt a codemerge?  Here's the syntax for those who missed the announcement:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://username.livejournal.com/tag/tag1,tag2?mode=and"&gt;http://username.livejournal.com/tag/tag1,tag2?mode=and&lt;/a&gt;&lt;br /&gt;&lt;a href="http://username.livejournal.com?tag=tag1,tag2&amp;mode=and"&gt;http://username.livejournal.com?tag=tag1,tag2&amp;mode=and&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The URL syntax was what bogged us down on that bug, and this seems like a reasonable solution, plus it's what users of both sites will come to expect.&lt;br /&gt;&lt;br /&gt;Links to our Bugzilla:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=581"&gt;http://bugs.dwscoalition.org/show_bug.cgi?id=581&lt;/a&gt; (for the tag list)&lt;br /&gt;&lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=1585"&gt;http://bugs.dwscoalition.org/show_bug.cgi?id=1585&lt;/a&gt; (for multiple tag search)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=65650" 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:50897</id>
    <author>
      <name>mrigeshpokhrel</name>
    </author>
    <dw:poster user="mrigeshpokhrel"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/50897.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=50897"/>
    <title>Desktop Client Proposed GUI</title>
    <published>2010-04-08T05:05:44Z</published>
    <updated>2010-04-08T05:05:44Z</updated>
    <category term="summer of code"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='mrigeshpokhrel' style='white-space: nowrap;' class='ljuser'&gt;&lt;a href='https://mrigeshpokhrel.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://mrigeshpokhrel.dreamwidth.org/'&gt;&lt;b&gt;mrigeshpokhrel&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;hi all, &lt;br /&gt;&lt;br /&gt; I designed a gui for my would-be application, kindly go through and make any suggestions or comments you seem necessary. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://mrigeshpokhrel.dreamwidth.org/1184.html"&gt;http://mrigeshpokhrel.dreamwidth.org/1184.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;regards, &lt;br /&gt;mrigesh pokhrel.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=50897" 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:36601</id>
    <author>
      <name>Res facta quae tamen fingi potuit</name>
    </author>
    <dw:poster user="pauamma"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/36601.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=36601"/>
    <title>Template access to LJ::set_(active|dynamic)_crumb and LJ::need_res</title>
    <published>2010-01-30T19:50:24Z</published>
    <updated>2010-01-31T14:44:01Z</updated>
    <category term="template toolkit"/>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>5</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='pauamma' style='white-space: nowrap;' class='ljuser'&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;&lt;br /&gt;&lt;br /&gt;foxfirefey's &lt;a href="http://dw-dev-training.dreamwidth.org/16833.html"&gt;let's keel BML ded (and eat its head)&lt;/a&gt; nudged me into TTizing the &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=124"&gt;stats pages&lt;/a&gt; before they get too unwieldy. So (because that page uses crumbs) I'm looking at how to set a crumb in the template (which I think is the proper place to do it, since templates map better onto pages than controllers do IMO). The interface I'm thinking of (tentatively - I haven't actually tried this yet) is something along the lines of:&lt;br /&gt;&lt;br /&gt;(something relying on RAWPERL, which is (and will likely remain) disabled, so filter/plugin it is instead, per exor674's comment below)&lt;br /&gt;&lt;br /&gt;I'm also wondering whether to make it a filter (or something) in DW::Routing::Apache2 instead, but I don't want to make further work on it harder if I can avoid it.&lt;br /&gt;&lt;br /&gt;Anyone has a thunk about this? (Specifically exor674 and foxfirefey, since they're leads on this, but not limited to them)&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=36601" 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:33406</id>
    <author>
      <name>Res facta quae tamen fingi potuit</name>
    </author>
    <dw:poster user="pauamma"/>
    <link rel="alternate" type="text/html" href="https://dw-dev.dreamwidth.org/33406.html"/>
    <link rel="self" type="text/xml" href="https://dw-dev.dreamwidth.org/data/atom/?itemid=33406"/>
    <title>More brainstorming on stats: payment stats</title>
    <published>2009-12-25T20:41:02Z</published>
    <updated>2009-12-25T20:41:02Z</updated>
    <category term="speccing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</dw:reply-count>
    <content type="html">Posted by: &lt;span lj:user='pauamma' style='white-space: nowrap;' class='ljuser'&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;&lt;br /&gt;&lt;br /&gt;So I'm still chipping away at &lt;a href="http://bugs.dwscoalition.org/show_bug.cgi?id=124"&gt;bug 124&lt;/a&gt;, and I've reached:&lt;blockquote&gt;* Number of payments in last 1d/2d/5d/7d/1m/3m/1y&lt;br /&gt;-- broken down by which payment level/payment item chosen&lt;br /&gt;-- xxx and divided into new payments vs. renewals&lt;br /&gt;-- xxx and expressed as a dollar amount taken in during that time&lt;/blockquote&gt;Now the first thing to figure out is where and how payments are stored in the database, and whether (and how) I can use the stored data for my purposes.&lt;br /&gt;&lt;br /&gt;Since I need to split data by what was ordered, I need to use shopping carts (table shop_carts, module DW::Shop::Cart), since that's where that information is. However, shopping carts don't tell me when payment was received, only when the cart was opened/checked out/whatever. For payment by check or money order, the difference could be substantial (several days to over 1 week), esp. if you want to wait for checks to clear until you record the payment. Since this is longer than the periods over which we want stats, it won't work, so I either need to base the stats on the order date instead of the payment date, or to use something else in addition to cart data.&lt;br /&gt;&lt;br /&gt;It's tempting to use pp_trans (see DW::Shop::Engine::PayPal), but that's only for PayPal payments (as far as I can tell), so it won't work for that purpose, since there are no equivalents for other payment methods (credit card, check, money order). Plus, I just care when the payment was received, not how, so I don't really want to get into that, with the likely maintenance nightmare that would come when another payment method is added, or worse, when payment for a given cart may be split between methods (hello, gift certs).&lt;br /&gt;&lt;br /&gt;So it looks like I need to add some data to shopping carts. All I need at that stage is a single timestamp for the last change of state, which could be indexed, which is nice (I can retrieve carts for which payment was received (state is PAID or PROCESSED - see $STATE_* in DW::Shop) in the last (mumble) days. For existing carts that won't have that timestamp, I can either set it from the creation timestamp or use other means, such as scavenging through pp_trans. I don't really need to keep a complete history of state changes, and I can't think  of a use case for one (but then, I'm not an accountant, not a lawyer, and not a developer of financial/accounts receivable/ecommerce software).&lt;br /&gt;&lt;br /&gt;Anyone wants to laugh at/tear into the above, or suggest alternatives or stuff I overlooked?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=dw_dev&amp;ditemid=33406" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
