<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Dreamwidth Development Training</title>
  <link>http://dw-dev-training.dreamwidth.org/</link>
  <description>Dreamwidth Development Training - Dreamwidth Studios</description>
  <lastBuildDate>Sun, 13 May 2012 15:17:20 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>dw_dev_training</lj:journal>
  <lj:journaltype>community</lj:journaltype>
  <atom10:link rel='self' href='http://dw-dev-training.dreamwidth.org/data/rss' />
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://www.dreamwidth.org/userpic/92798/30813</url>
    <title>Dreamwidth Development Training</title>
    <link>http://dw-dev-training.dreamwidth.org/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/35163.html</guid>
  <pubDate>Sun, 13 May 2012 15:17:20 GMT</pubDate>
  <title>Updating the Database via changes to en.dat</title>
  <link>http://dw-dev-training.dreamwidth.org/35163.html</link>
  <description>Me again :/ Still on bug 2152.&lt;br /&gt;&lt;br /&gt;I wanted to change some of the labels in the settings for display.  I found these in en.dat, changed them, updated the database and everything was working fine.  But, all of a sudden, any new changes I make in en.dat don&apos;t appear to be getting picked up - this includes resetting everything using &lt;code&gt;patch -R&lt;/code&gt; and updating the database* - I&apos;m still getting my new labels turning up rather  than the old ones. &lt;br /&gt;&lt;br /&gt;What might I have done?  (I did have a play with the test suites following some discussion recently and &lt;span style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://denise.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;http://www.dreamwidth.org/img/silk/identity/user_staff.png&apos; alt=&apos;[staff profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://denise.dreamwidth.org/&apos;&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; (I think) mentioned these can corrupt the database in some way).&lt;br /&gt;&lt;br /&gt;I&apos;m using a dreamhack, in case that&apos;s relevant.&lt;br /&gt;&lt;br /&gt;*&lt;code&gt;stop-apache&lt;br /&gt;&lt;br /&gt;$LJHOME/bin/upgrading/update-db.pl -r -p --innodb&lt;br /&gt;$LJHOME/bin/upgrading/update-db.pl -r --cluster=all --innodb&lt;br /&gt;$LJHOME/bin/upgrading/texttool.pl load&lt;br /&gt;&lt;br /&gt;start-apache&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=35163&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/35163.html</comments>
  <category>question</category>
  <category>database</category>
  <lj:security>public</lj:security>
  <lj:poster>purplecat</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/34920.html</guid>
  <pubDate>Mon, 07 May 2012 18:49:27 GMT</pubDate>
  <title>Including changes to config files in patches</title>
  <link>http://dw-dev-training.dreamwidth.org/34920.html</link>
  <description>Still working on Bug 2152.  The bug involves allowing people to have multiple stickies and the number they can have depends upon their account type.  Adding this feature is going to involve a new config setting where someone sets the numbers of stickies allowable for each account type.  However I&apos;ve done the whole &lt;a href=&quot;http://wiki.dwscoalition.org/wiki/index.php/Dreamhack_getting_started#Protect_your_configs_from_updates&quot;&gt;protect your configs from updates&lt;/a&gt; thing which means the new config settings aren&apos;t showing up in the patch files I create.&lt;br /&gt;&lt;br /&gt;Should I just document the extra settings needed in the files? especially since the actual numbers associated with each account type aren&apos;t particularly important to the code and should probably be decided upon by the powers that be separately from the actual patch?  or should I include some default values in the patch and, if so, what is the best way to go about getting these picked up by &lt;code&gt;cvsreport.pl -d&lt;/code&gt;?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=34920&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/34920.html</comments>
  <category>config files</category>
  <category>question</category>
  <category>cvsreport.pl</category>
  <category>bug 2152</category>
  <lj:security>public</lj:security>
  <lj:poster>purplecat</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/34800.html</guid>
  <pubDate>Sat, 05 May 2012 14:30:59 GMT</pubDate>
  <title>Working on a DW Bug: Step by Step</title>
  <link>http://dw-dev-training.dreamwidth.org/34800.html</link>
  <description>So, when I woke up this morning, in #dreamwidth, there was a discussion of a bug in auto-expanding lj-cuts in a particular entry. It looked interesting enough that I figured I would poke at it, since there was a theory it was a Javascript bug, and Javascript is a language I speak. (The actual bug was that clicking on a particular lj-cut expansion would expand to a different lj-cut text, now filed as &lt;a href=&quot;http://bugs.dwscoalition.org/show_bug.cgi?id=4435&quot;&gt;Bug 4435&lt;/a&gt;.) &lt;br /&gt;&lt;br /&gt;First, I didn&apos;t even know how to expand LJ-cuts inline. So I started from pretty much nothing here. :) But in the end, I think I found the bug, and attached a patch to Zilla, so I figured I&apos;d write up my process.&lt;br /&gt;&lt;br /&gt;Start: (6:46) Okay, clicking on the cut gives the wrong thing. Open up my browser&apos;s web console, and check the HTTP request that it&apos;s sending is right -- it specifies cutid=1, but is given one from a much later cut. (6:48) To me, this suggests that the problem is server side (not Javascript), so I have to dive into code I can&apos;t just load in my browser. I experiment a bit more to ensure that this appears to be the case, and determine I can&apos;t see any evidence that this is client side. (6:58).&lt;br /&gt;&lt;br /&gt;I Googled &apos;dreamwidth code&apos; (which didn&apos;t get me very far), then &apos;dreamwidth mercurial&apos;, which got me to &lt;a href=&quot;http://hg.dwscoalition.org/&quot;&gt;the hg repo&lt;/a&gt; (even though it was the 5th result) first. After realizing I couldn&apos;t figure out how to check out the code from there, I went back to the first hit for that search, the &lt;a href=&quot;http://www.dreamwidth.org/site/opensource&quot;&gt;opensource&lt;/a&gt; page, and made my way through to &lt;a href=&quot;http://wiki.dwscoalition.org/wiki/index.php/Main_Page&quot;&gt;the wiki&lt;/a&gt; and from there to &lt;a href=&quot;http://wiki.dwscoalition.org/wiki/index.php/Dev_Getting_Started&quot;&gt;Getting Started&lt;/a&gt; and from there to &lt;a href=&quot;http://wiki.dwscoalition.org/wiki/index.php/Dreamwidth_Scratch_Installation&quot;&gt;Scratch Installation&lt;/a&gt; and from there to &lt;a href=&quot;http://wiki.dwscoalition.org/wiki/index.php/Dreamwidth_Scratch_Installation#Downloading_the_Dreamwidth_code&quot;&gt;Downloading the code&lt;/a&gt; from which I grabbed bootstrap.pl, and from there to the one line I wanted: &apos;hg -q clone &lt;a href=&quot;http://hg.dwscoalition.org/dw-free&quot;&gt;http://hg.dwscoalition.org/dw-free&lt;/a&gt;&apos;. (Yes, if I knew mercurial better, I probably could have done this without following any of those steps ... but I didn&apos;t. In fact, I didn&apos;t even have mercurial installed at the time. So I also installed that.)&lt;br /&gt;&lt;br /&gt;So, it&apos;s now 7:04, and after grep -r-ing for rpc_cuttag, I find cgi-bin/DW/Controller/RPC/CutExpander.pm, and realize that all the work in the cut expander is done by LJ::CleanHTML. My memory of working on LJ almost a decade ago was that this particular chunk of code was a hairy, nasty, mess -- as is almost any code that parses HTML -- so I was unsurprised to find that little has changed ;)&lt;br /&gt;&lt;br /&gt;After looking briefly at CleanHTML (07:11), I decided that this was almost certainly a side effect of the particular entry text -- simple tests showed that this worked, but this entry was clearly failing. I checked briefly whether any community mods for that community might be in #dreamwidth -- the answer to which was no. (07:12). &lt;br /&gt;&lt;br /&gt;At 07:15 I summarize my progress so far to the channel:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Javascript is doing fine. IT&apos;s asking for the right cut. The server side is broken. &lt;/li&gt;&lt;li&gt;The server side RPC mechanism is likely doing the right thing; there&apos;s no smarts there.&lt;/li&gt;&lt;li&gt;Once it gets past that, it goes into the CleanHTML code, which in addition to being the gnarliest perl code I&apos;ve ever not touched, definitely behaves very differently when in &quot;looking for cut mode&quot; &lt;br /&gt;                      than it does otherwise, so it&apos;s not super-surprising that this fails.&lt;/li&gt;&lt;/ol&gt;At 07:19, I basically declare defeat: without the source text for the bug, it will be very difficult to debug, but I continue to read the CleanHTML source anyway, trying to understand it slightly better. It&apos;s clear that lj-cut handling isn&apos;t trivial. I find a couple interesting things in the code, but nothing that calls to me as the source of the bug.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/34800.html#cutid1&quot;&gt;this gets long&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;Total time: ~2 hours, start to finish, with a lot of stumbling around to figure out how things were supposed to work, and I&apos;m still not particularly sure that I did things right, but it does look like I actually fixed the problem... the question is really just whether it also made anything else worse :)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=34800&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/34800.html</comments>
  <category>bug walkthrough</category>
  <lj:security>public</lj:security>
  <lj:poster>crschmidt</lj:poster>
  <lj:reply-count>9</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/34384.html</guid>
  <pubDate>Tue, 01 May 2012 22:16:31 GMT</pubDate>
  <title>DW object-oriented programming explained (Part 3) - using classes</title>
  <link>http://dw-dev-training.dreamwidth.org/34384.html</link>
  <description>It&apos;s been a while since I posted anything in &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/tag/object-oriented+programming&quot;&gt;this series of entries&lt;/a&gt;, and I apologise for that! Today, though, I&apos;ll be explaining how to actually use classes in Perl and the Dreamwidth code and constructing new objects.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/34384.html#cutid1&quot;&gt;How do you use classes?&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That&apos;s a lot to take in, so I&apos;ll leave off for now! I hope I&apos;ve explained things well, but I&apos;m sure that there are bits that are going to be incomprehensible. If you need me to explain anything further, please ask in the comments - I&apos;ll be happy to try to explain it.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=34384&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/34384.html</comments>
  <category>perl</category>
  <category>beginner guide</category>
  <category>object-oriented programming</category>
  <lj:security>public</lj:security>
  <lj:poster>sophie</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/34175.html</guid>
  <pubDate>Tue, 01 May 2012 18:37:47 GMT</pubDate>
  <title>Can a journal entry id be 0?</title>
  <link>http://dw-dev-training.dreamwidth.org/34175.html</link>
  <description>For Bug 2152 I&apos;ve found I need to create a subroutine that checks whether a form element refers to a valid entry in the user&apos;s journal separately from the various subroutines for actually saving it as a sticky.&lt;br /&gt;&lt;br /&gt;If a journal entry id can never be zero then this subroutine could return the id number if it is valid and 0 otherwise.  In that case the subroutine can replace duplicate code in at least two places, but obviously if an entry can be 0 then the subroutine had better just return 0 or 1.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=34175&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/34175.html</comments>
  <category>question</category>
  <category>journal entries</category>
  <lj:security>public</lj:security>
  <lj:poster>purplecat</lj:poster>
  <lj:reply-count>8</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/33924.html</guid>
  <pubDate>Sun, 25 Mar 2012 13:02:24 GMT</pubDate>
  <title>Test Plan Walkthrough: Bug 2154</title>
  <link>http://dw-dev-training.dreamwidth.org/33924.html</link>
  <description>As well as uploading a  patch file for bug 2154, I uploaded the notes I had made for the test plan for the patch in case they were of use in the review process.  &lt;span style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://denise.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;http://www.dreamwidth.org/img/silk/identity/user_staff.png&apos; alt=&apos;[staff profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://denise.dreamwidth.org/&apos;&gt;&lt;b&gt;denise&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; asked if I could write a post explaining how I came up with the tests for this comm, since it was something people often asked about.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/33924.html#cutid1&quot;&gt;Generating Tests for Bug 2154&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=33924&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/33924.html</comments>
  <category>testing</category>
  <category>bug 2154</category>
  <category>walkthroughs</category>
  <lj:security>public</lj:security>
  <lj:poster>purplecat</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/33678.html</guid>
  <pubDate>Sat, 24 Mar 2012 08:59:41 GMT</pubDate>
  <title>New Bugzilla section: Dreamwidth wiki work</title>
  <link>http://dw-dev-training.dreamwidth.org/33678.html</link>
  <description>The &lt;a href=&quot;http://wiki.dwscoalition.org/notes/&quot;&gt;Dreamwidth wiki&lt;/a&gt; isn&apos;t well-suited to keeping track of changes needed to the wiki itself and actions/feedback/progress on them, but &lt;a href=&quot;http://bugs.dwscoalition.org&quot;&gt;Dreamzilla&lt;/a&gt; is ideal for those, and it now has a section dedicated to them. When searching for bugs or filing a new one, select &quot;Project Documentation&quot; as the product and &quot;Wiki documentation&quot; as the component.&lt;br /&gt;&lt;br /&gt;This being Dreamwidth, there is substantial overlap between the technical and the social/cultural, but some restraint is advised. As an example, documenting &lt;a href=&quot;http://qdb.dreamwidth.net/dw/341&quot;&gt;what can make me lose The Game&lt;/a&gt; is probably handled outside Bugzilla.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=33678&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/33678.html</comments>
  <category>bugzilla</category>
  <category>wiki</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/33378.html</guid>
  <pubDate>Sat, 24 Mar 2012 07:49:45 GMT</pubDate>
  <title>Question thread #6</title>
  <link>http://dw-dev-training.dreamwidth.org/33378.html</link>
  <description>It&apos;s time for another &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/28523.html&quot;&gt;question thread&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The rules:&lt;br /&gt;&lt;br /&gt;- You may ask any dev-related question you have in a comment. (It doesn&apos;t even need to be about Dreamwidth, although if it involves a language/library/framework/database Dreamwidth doesn&apos;t use, you will probably get answers pointing that out and suggesting a better place to ask.)&lt;br /&gt;- You may also answer any question, using the guidelines given in &lt;a href=&quot;http://perlmonks.org/?node_id=917522&quot;&gt;To Answer, Or Not To Answer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=33378&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/33378.html</comments>
  <category>questions</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>10</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/33080.html</guid>
  <pubDate>Tue, 13 Mar 2012 13:57:23 GMT</pubDate>
  <title>Design Discussion:  A Process Question really</title>
  <link>http://dw-dev-training.dreamwidth.org/33080.html</link>
  <description>I&apos;ve picked a second bug to work on (&lt;a href=&quot;http://bugs.dwscoalition.org/show_bug.cgi?id=2154&quot;&gt;2154&lt;/a&gt;) and I&apos;ve realised there are basically two approaches to fixing it, one involves leaving the current interface as it is and building some (probably simple but potentially ugly) smarts into the code and the other involves getting a bit more info from the user up front.&lt;br /&gt;&lt;br /&gt;So this is partly a question about which approach is preferable, but more generally a question about the appropriate place to have this kind of discussion.  Should I use the comments in bugzilla, for instance?  Similarly were I to pick the route that involved fiddling with the user interface, should screen shots of the potential new interface go into bugzilla for sign off (or review or ???) before a patch file is generated?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=33080&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/33080.html</comments>
  <category>question</category>
  <lj:security>public</lj:security>
  <lj:poster>purplecat</lj:poster>
  <lj:reply-count>6</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/32949.html</guid>
  <pubDate>Mon, 12 Mar 2012 21:18:36 GMT</pubDate>
  <title>Bug walkthrough: 2886</title>
  <link>http://dw-dev-training.dreamwidth.org/32949.html</link>
  <description>Hi!&lt;br /&gt;&lt;br /&gt;I wrote a bug walkthrough, which I have hidden behind a cut.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/32949.html#cutid1&quot;&gt;Long walkthrough is LONG.&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=32949&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/32949.html</comments>
  <category>bug 2886</category>
  <category>bug walkthrough</category>
  <lj:security>public</lj:security>
  <lj:poster>randomling</lj:poster>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/32690.html</guid>
  <pubDate>Sun, 04 Mar 2012 19:30:39 GMT</pubDate>
  <title>Bugzilla: Getting Started Question</title>
  <link>http://dw-dev-training.dreamwidth.org/32690.html</link>
  <description>I&apos;m a really, really new developer (fired up my dreamhack for the first time about an hour ago) and I&apos;ve been working through the documentation and poking through the code.  I&apos;ve found an unclaimed bug in a babydev bug list which looks like a nice place to start.&lt;br /&gt;&lt;br /&gt;My question is should I claim the bug on bugzilla now, or wait until I&apos;m reasonably confident I&apos;ve found all the relevant bits of code and have a plan for how I&apos;m going to go about fixing it?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=32690&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/32690.html</comments>
  <category>bugzilla</category>
  <category>bugs</category>
  <lj:security>public</lj:security>
  <lj:poster>purplecat</lj:poster>
  <lj:reply-count>8</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/32468.html</guid>
  <pubDate>Fri, 17 Feb 2012 23:27:28 GMT</pubDate>
  <title>DW object-oriented programming explained (Part 2)</title>
  <link>http://dw-dev-training.dreamwidth.org/32468.html</link>
  <description>Welcome to the second part of the series on object-oriented programming - or OO - as it applies to the Dreamwidth codebase. :)&lt;br /&gt;&lt;br /&gt;If you haven&apos;t already read the &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/31843.html&quot;&gt;first part&lt;/a&gt;, you&apos;ll want to do that before reading this part. I also realise that I never got around to explaining what &apos;methods&apos; are in the first post, so I&apos;m going to do that right now before delving into the main part of this post:&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/32468.html#cutid1&quot;&gt;What are methods?&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As with the last post, if you have any questions on this, feel free to let me know in the comments!&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;So, with that explanation of methods out of the way, it&apos;s time to move onto our next topic - how it applies to the DW codebase.&lt;br /&gt;&lt;br /&gt;I&apos;m going to do this as a few posts, each dealing with their own topic, because I&apos;ve got a fair amount to say about them. I&apos;m still not entirely sure how many there&apos;ll be, but I&apos;m writing them one at a time so there may be some time (a few days to a week) between each one.&lt;br /&gt;&lt;br /&gt;A couple of things to note before I begin:&lt;ul&gt;&lt;li&gt;This post may require some basic knowledge of Perl and/or programming in general. Not much, I promise! (Things such as what a &apos;string&apos; is, etc.) But all the same, if anybody finds themselves confused by anything I write, feel free to ask for clarification in the comments. I won&apos;t bite!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Secondly, if you&apos;re used to OO from another language, you&apos;ll find some things about Perl&apos;s implementation of OO to be strange and baffling. That&apos;s because Perl wasn&apos;t actually designed with OO in mind; OO support came later, and to be honest, it shows. Still, it&apos;s what we use, so I hope I can at least help with understanding it.&lt;sup&gt;&lt;a href=&quot;#dw-oo2-perl6&quot;&gt;(**)&lt;/a&gt;&lt;/sup&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;small&gt;&lt;sup&gt;(**)&lt;/sup&gt; There &lt;em&gt;is&lt;/em&gt; a version of Perl in the works which does a much better job of not only OO but a lot of other things - &lt;a href=&quot;http://dev.perl.org/perl6/&quot;&gt;Perl 6&lt;/a&gt; - but at the cost of revamping a lot of the language such that you probably wouldn&apos;t be able to use it without spending some time making sure your code conformed to it. For this series, therefore, I&apos;ll be concentrating on Perl 5, which is what most Perl developers - including DW and LJ - use.&lt;/small&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;With all that said, let&apos;s move onto our first topic!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___2&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/32468.html#cutid2&quot;&gt;What is an &apos;object&apos; in Perl?&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___2&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;That&apos;s about it for this post. There&apos;s a lot of stuff here so feel free to ask questions if there&apos;s anything you don&apos;t understand! My next post will probably talk about how you can create and use an object, as well as some example of existing classes in the codebase.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=32468&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/32468.html</comments>
  <category>perl</category>
  <category>beginner guide</category>
  <category>object-oriented programming</category>
  <lj:security>public</lj:security>
  <lj:poster>sophie</lj:poster>
  <lj:reply-count>18</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/32249.html</guid>
  <pubDate>Tue, 14 Feb 2012 21:29:11 GMT</pubDate>
  <title>template toolkit</title>
  <link>http://dw-dev-training.dreamwidth.org/32249.html</link>
  <description>How does it work?&lt;br /&gt;&lt;br /&gt;Does anybody have good TT resources to throw at me? I&apos;m having trouble wrapping my brain around it.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=32249&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/32249.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>denise</lj:poster>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/31843.html</guid>
  <pubDate>Mon, 13 Feb 2012 21:11:48 GMT</pubDate>
  <title>DW object-oriented programming explained (Part 1)</title>
  <link>http://dw-dev-training.dreamwidth.org/31843.html</link>
  <description>The Dreamwidth codebase uses object-oriented programming a lot, or &quot;OO&quot; as it&apos;s known. But what exactly &lt;em&gt;is&lt;/em&gt; OO? In this post I&apos;m going to explain the concepts of OO. I plan this to be the first in a series; in later posts I&apos;ll explain how OO programming relates to the DW codebase, some gotchas that might arise, and other such things.&lt;br /&gt;&lt;br /&gt;For now though, an introduction to the basic concepts of OO!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cuttag_container&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b&gt;(&amp;nbsp;&lt;a href=&quot;http://dw-dev-training.dreamwidth.org/31843.html#cutid1&quot;&gt;So, what is OO exactly?&lt;/a&gt;&amp;nbsp;)&lt;/b&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And that, in a nutshell, is what OO is all about. In the next post on this subject - which may be in a few days or a week, I don&apos;t know yet - I&apos;ll be talking about how this applies to the Dreamwidth codebase. :)&lt;br /&gt;&lt;br /&gt;If anybody has any questions so far about what I&apos;ve said in this post, please feel free to comment!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=31843&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/31843.html</comments>
  <category>beginner guide</category>
  <category>object-oriented programming</category>
  <lj:security>public</lj:security>
  <lj:poster>sophie</lj:poster>
  <lj:reply-count>8</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/31597.html</guid>
  <pubDate>Thu, 09 Feb 2012 20:04:58 GMT</pubDate>
  <title>Question thread #5</title>
  <link>http://dw-dev-training.dreamwidth.org/31597.html</link>
  <description>It&apos;s time for another &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/28523.html&quot;&gt;question thread&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The rules:&lt;br /&gt;&lt;br /&gt;- You may ask any dev-related question you have in a comment. (It doesn&apos;t even need to be about Dreamwidth, although if it involves a language/library/framework/database Dreamwidth doesn&apos;t use, you will probably get answers pointing that out and suggesting a better place to ask.)&lt;br /&gt;- You may also answer any question, using the guidelines given in &lt;a href=&quot;http://perlmonks.org/?node_id=917522&quot;&gt;To Answer, Or Not To Answer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=31597&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/31597.html</comments>
  <category>questions</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/31370.html</guid>
  <pubDate>Fri, 03 Feb 2012 20:09:30 GMT</pubDate>
  <title>Strip tab characters from multiple text files and replace them with spaces (or something else)</title>
  <link>http://dw-dev-training.dreamwidth.org/31370.html</link>
  <description>I switch between Gedit, Notepad++, and vim fairly often depending on what I&apos;m doing and whose computer I&apos;m on.  Sometimes I end up with tab characters where I really wanted four spaces, mainly when I&apos;m using vim and I haven&apos;t figured out how to get vim to &lt;i&gt;not do this&lt;/i&gt;.  Gedit and Notepad++ have settings to use spaces instead of tabs, so there&apos;s no issue there.&lt;br /&gt;&lt;br /&gt;Either I don&apos;t notice the tab characters until after I&apos;ve put lots of them in the file I&apos;m editing, or I&apos;m editing a file from someone else whose editor uses tab characters for indentation.  I know its not a big deal to some people, but tab indentation mixed with space indentation is a huge pet peeve of mine.  &lt;br /&gt;&lt;br /&gt;Thus, a perl script was born:&lt;br /&gt;&lt;br /&gt;&lt;textarea cols=&quot;70&quot; rows=&quot;10&quot;&gt;#!/usr/bin/perl -w

use File::Copy;

# This script replaces tab characters in a file with four spaces, or whatever else you want

$num_args = $#ARGV + 1;
$num_warnings = 0;
$tab_replace = &quot;    &quot;;  # Change this to whatever you want in place of tabs

if ( $num_args == 0 ) {
    print &quot;usage: strip-tabs.pl file1 [file2, file3...]\n&quot;;
    exit;
}

# Have files to parse...
for my $f ( 0 .. ($num_args - 1) ) {
    if ( open(INPUTFILE, &quot;&amp;lt;$ARGV[$f]&quot;) ) {
       if ( open(OUTPUTFILE, &quot;&amp;gt;$ARGV[$f]~&quot;) ) {
           # Start parsing the file
           while ( my $line = &amp;lt;INPUTFILE&amp;gt; ) {
               $line =~ s/\t/$tab_replace/g;
               print OUTPUTFILE $line;
           }
           # Copy over original file here
           close(OUTPUTFILE);
           close(INPUTFILE);
           if ( !move(&quot;$ARGV[$f]~&quot;, $ARGV[$f]) ) {
               print &quot;Could not write output to file $ARGV[$f]: $!\n&quot;;
               $num_warnings += 1;
           }
       }
       else {
           close(INPUTFILE);
           print &quot;Could not create output file for $ARGV[$f]: $!\n&quot;;
           $num_warnings += 1;
       }
    }
    else {
        print &quot;Could not open $ARGV[$f] for reading: $!\n&quot;;
        $num_warnings += 1;
    }
}
die &quot;$num_warnings warnings encountered during file operation.&quot; unless $num_warnings == 0;&lt;/textarea&gt;&lt;br /&gt;&lt;a href=&quot;https://gist.github.com/1724758&quot;&gt;View Gist (strip-tabs.pl)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Feel free to gank away if you find it useful!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=31370&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/31370.html</comments>
  <category>text editors</category>
  <category>perl</category>
  <lj:mood>relaxed</lj:mood>
  <lj:security>public</lj:security>
  <lj:poster>delladea</lj:poster>
  <lj:reply-count>13</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/31206.html</guid>
  <pubDate>Wed, 04 Jan 2012 17:11:20 GMT</pubDate>
  <title>Question thread #4</title>
  <link>http://dw-dev-training.dreamwidth.org/31206.html</link>
  <description>It&apos;s time for another &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/28523.html&quot;&gt;question thread&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The rules:&lt;br /&gt;&lt;br /&gt;- You may ask any dev-related question you have in a comment. (It doesn&apos;t even need to be about Dreamwidth, although if it involves a language/library/framework/database Dreamwidth doesn&apos;t use, you will probably get answers pointing that out and suggesting a better place to ask.)&lt;br /&gt;- You may also answer any question, using the guidelines given in &lt;a href=&quot;http://perlmonks.org/?node_id=917522&quot;&gt;To Answer, Or Not To Answer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=31206&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/31206.html</comments>
  <category>questions</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>10</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/30913.html</guid>
  <pubDate>Sat, 31 Dec 2011 07:18:35 GMT</pubDate>
  <title>Delayed Zilla mail?</title>
  <link>http://dw-dev-training.dreamwidth.org/30913.html</link>
  <description>I&apos;ve been getting mail from &lt;a href=&quot;http://bugs.dwscoalition.org/&quot;&gt;http://bugs.dwscoalition.org/&lt;/a&gt; late for a few days. Like 24 hours later. Does anyone else have the same problem?&lt;br /&gt;&lt;br /&gt;Edit: &lt;a href=&quot;http://bugs.dwscoalition.org/show_bug.cgi?id=4133&quot;&gt;mystery solved&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=30913&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/30913.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>ninetydegrees</lj:poster>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/30485.html</guid>
  <pubDate>Sat, 03 Dec 2011 22:41:48 GMT</pubDate>
  <title>Hooks</title>
  <link>http://dw-dev-training.dreamwidth.org/30485.html</link>
  <description>This came up in the previous questions post, and it&apos;s confusing enough that I thought I&apos;d bring it up to a top-level post: hooks, and what to do if you see something in there that uses one but you can&apos;t figure out where the hook is.&lt;br /&gt;&lt;br /&gt;LiveJournal uses a &lt;em&gt;lot&lt;/em&gt; of hooks to pull ljcom (their equivalent of dw-nonfree) data into livejournal (their equivalent of dw-free) without hardcoding ljcom-specific things into livejournal. You&apos;ll see them called like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;LJ::Hooks::run_hook( &quot;hook_name&quot; );&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(sometimes with some other parameters added, or as a variable assignment). &lt;em&gt;Some&lt;/em&gt; of them are also used in dreamwidth code: sometimes the hooks that were already defined in the code were useful for our purposes, or we wanted to do the same kind of thing with dw-nonfree code that was being done with ljcom code -- you&apos;ll find those in &lt;a href=&quot;http://hg.dwscoalition.org/dw-free/file/tip/cgi-bin/DW/Hooks&quot;&gt;cgi-bin/DW/Hooks&lt;/a&gt;. I&apos;d say probably about 90% of the hooks that are tied into the code aren&apos;t actually defined in either dw-free or dw-nonfree, though, because we just haven&apos;t needed them yet.&lt;br /&gt;&lt;br /&gt;So, if you see a hook defined in the code, but you grep the code and nothing turns up for the hook name except the line that calls it -- it&apos;s probably an old ljcom hook that we haven&apos;t started using yet. You can look at &lt;a href=&quot;http://code.livejournal.org/trac/ljcom/browser/trunk/cgi-bin/LJ/Hooks&quot;&gt;ljcom&apos;s cgi-bin/LJ/Hooks&lt;/a&gt; directory, if you really are curious about what the hook is meant to do, but since ljcom is not free software, you can&apos;t and shouldn&apos;t copy the hook directly.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=30485&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/30485.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>denise</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/30334.html</guid>
  <pubDate>Mon, 21 Nov 2011 16:33:46 GMT</pubDate>
  <title>Question thread #3</title>
  <link>http://dw-dev-training.dreamwidth.org/30334.html</link>
  <description>It&apos;s time for another &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/28523.html&quot;&gt;question thread&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The rules:&lt;br /&gt;&lt;br /&gt;- You may ask any dev-related question you have in a comment. (It doesn&apos;t even need to be about Dreamwidth, although if it involves a language/library/framework/database Dreamwidth doesn&apos;t use, you will probably get answers pointing that out and suggesting a better place to ask.)&lt;br /&gt;- You may also answer any question, using the guidelines given in &lt;a href=&quot;http://perlmonks.org/?node_id=917522&quot;&gt;To Answer, Or Not To Answer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=30334&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/30334.html</comments>
  <category>questions</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>52</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/30117.html</guid>
  <pubDate>Fri, 18 Nov 2011 14:26:23 GMT</pubDate>
  <title>Console commands not working</title>
  <link>http://dw-dev-training.dreamwidth.org/30117.html</link>
  <description>I&apos;ve just begin the process of setting up my Dreamhack config according to &lt;a href=&quot;wiki.dwscoalition.org/notes/Dreamhack_Getting_Started&quot;&gt;the wiki&lt;/a&gt;.  I&apos;ve gotten to the point of updating my code to the latest version (as described in &lt;a href=&quot;http://wiki.dwscoalition.org/notes/Dev_Maintenance&quot;&gt;Dev Maintenance&lt;/a&gt;) and creating several test accounts.&lt;br /&gt;&lt;br /&gt;No matter which account I&apos;m logged into or what privs that account has, I cannot run console commands at all.  Not even commands available to all accounts like &lt;code&gt;ban-set&lt;/code&gt;.  Every command gives an error message &quot;There is no such command &apos;&amp;lt;command-name&amp;gt;&apos;.&quot;  At this point, I haven&apos;t messed with any of the existing code.&lt;br /&gt;&lt;br /&gt;How do I fix this?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Edit:&lt;/strong&gt;  Underscores!  I was using dashes instead of underscores in the console commands and my brain didn&apos;t catch that.  Solved. :D&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=30117&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/30117.html</comments>
  <category>dreamhacks</category>
  <lj:mood>awake</lj:mood>
  <lj:security>public</lj:security>
  <lj:poster>delladea</lj:poster>
  <lj:reply-count>7</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/29833.html</guid>
  <pubDate>Sat, 29 Oct 2011 12:34:25 GMT</pubDate>
  <title>Profiles: Connect: questions on character limits and Gizmo</title>
  <link>http://dw-dev-training.dreamwidth.org/29833.html</link>
  <description>/htdocs/manage/profile/index.bml seems to have arbitrary character limits for some of the external usernames you can have in the &apos;Connect&apos; section of the profile.&lt;br /&gt;&lt;br /&gt;Skype, Delicious and Twitter have 40 but usernames can&apos;t be over 32, 32 and 15 characters respectively.&lt;br /&gt;&lt;br /&gt;Last.fm has 255 but it&apos;s actually 15 for usernames and 60 for groups.&lt;br /&gt;&lt;br /&gt;Is there a reason for this?&lt;br /&gt;&lt;br /&gt;Also, Gizmo is now Gizmo5, which is no longer supported. Should it be kept anyway?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=29833&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/29833.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>ninetydegrees</lj:poster>
  <lj:reply-count>8</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/29599.html</guid>
  <pubDate>Fri, 28 Oct 2011 01:06:42 GMT</pubDate>
  <title>Stepping up code review, especially for newer coders!</title>
  <link>http://dw-dev-training.dreamwidth.org/29599.html</link>
  <description>Hello, folks!&lt;br /&gt;&lt;br /&gt;For those who don&apos;t know me, my name&apos;s kj (yes, that&apos;s what I go by in off-line life, too -- blame my mom!) and I do a bit of code review here and there.  Well, &lt;em&gt;did&lt;/em&gt; a bit.  Recently I&apos;ve been encouraged to do more of it, and I&apos;m certainly up to it.&lt;br /&gt;&lt;br /&gt;One of the things I really like about Dreamwidth is the welcoming nature of the project.  Both old coders new to the project and new coders in general are welcomed with open arms, and frankly, there&apos;s just not enough of that these days.  Being a new coder in general is especially hard because it&apos;s hard to tell if you&apos;re going in the right direction, and waiting a long time for someone to look over your work, test it, give feedback, and put it up for commit can really slow one down when you&apos;re learning.  Uncertainty is possibly the most difficult part of learning.&lt;br /&gt;&lt;br /&gt;One way I&apos;d like to help with that is to pay extra-special attention to the needs of newer coders and other people (who are, like me) new to the project.  If you&apos;d like me to review your code, feel free to ask; via e-mail, in IRC (#dreamwidth-dev on Freenode), or by Cc:ing me specifically on the bug, and I&apos;ll get to it as soon as I&apos;m able.  I can&apos;t make any promises on wait time (I&apos;ve got a day job, a fiancée, a teenager, and a dog!), but I&apos;ll do my best to make it happen as soon as I can.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=29599&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/29599.html</comments>
  <category>dev</category>
  <lj:music>Vancouver harbour air traffic control</lj:music>
  <lj:mood>happy</lj:mood>
  <lj:security>public</lj:security>
  <lj:poster>kjwcode</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/29375.html</guid>
  <pubDate>Thu, 20 Oct 2011 14:04:37 GMT</pubDate>
  <title>Question thread #2</title>
  <link>http://dw-dev-training.dreamwidth.org/29375.html</link>
  <description>It&apos;s time for another &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/28523.html&quot;&gt;question thread&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The rules:&lt;br /&gt;&lt;br /&gt;- You may ask any dev-related question you have in a comment. (It doesn&apos;t even need to be about Dreamwidth, although if it involves a language/library/framework/database Dreamwidth doesn&apos;t use, you will probably get answers pointing that out and suggesting a better place to ask.)&lt;br /&gt;- You may also answer any question, using the guidelines given in &lt;a href=&quot;http://perlmonks.org/?node_id=917522&quot;&gt;To Answer, Or Not To Answer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=29375&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/29375.html</comments>
  <category>questions</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://dw-dev-training.dreamwidth.org/29128.html</guid>
  <pubDate>Fri, 07 Oct 2011 18:57:26 GMT</pubDate>
  <title>New page about the care and feeding of workers</title>
  <link>http://dw-dev-training.dreamwidth.org/29128.html</link>
  <description>&lt;a href=&quot;http://wiki.dwscoalition.org/notes/Workers&quot;&gt;http://wiki.dwscoalition.org/notes/Workers&lt;/a&gt;, linked from &lt;a href=&quot;http://wiki.dwscoalition.org/notes/TheSchwartz_Setup#On_your_own_install&quot;&gt;http://wiki.dwscoalition.org/notes/TheSchwartz_Setup#On_your_own_install&lt;/a&gt; (end of section). Should that link be more prominent?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=29128&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://dw-dev-training.dreamwidth.org/29128.html</comments>
  <category>theschwartz</category>
  <category>gearman</category>
  <category>introduction</category>
  <category>workers</category>
  <lj:security>public</lj:security>
  <lj:poster>pauamma</lj:poster>
  <lj:reply-count>1</lj:reply-count>
</item>
</channel>
</rss>

