This will be my 100th writeup. I was hoping for something a
little more epic for the landmark writeup, but I've gotten caught up
in a coding spree that I think I should detail more carefully.
I should say a few things about my coding style. First of all, I'm
loudmouthed, and this applies also to the way I code. I talk and talk
and talk about coding, because I talk and talk and talk about
everything else in life. I also like to make coding very open, and I
strongly advocate keeping open about coding as well. In Patch
Manager you can track almost every change I make except the ones that
are currently not technically feasible to track (and I hope to make
them trackable soon). In fact, this root log will be little more than
a summary and explanation of the recent coding changes I will read from
Patch Manager.
A bit about my coding background: the only code not my own that I've
ever worked with is free code. I think this shows a
little in my coding style, because I'm used to talking very openly
about code, to change anything in sight, to document and track my
changes because I expect them to be read by someone else. I think of
myself as something like a people's coder, and now I'm very aware that
I'm coding for you noders. I want to hear your input, tell me where I
or we messed up, tell me what you think, what feature you would like
to see implemented. If you're in edev, let me invite you right now
to make patches whenever you feel like it, and I promise for the time
being to review them myself if no one else does. If you're an ordinary
noder, please note that as a "temporary"
change, I've reopened e2 bugs, and I heartily encourage you to put
your bug reports there, as new writeups.
Enough talk. Here's what I've been up to:
- External links: This is what kicked off my coding spree. I
showed a writeup of mine to someone, they were confused by how the
pre-external linking worked, so I decided, "well, I can change this,
can't I?" I worked together with Oolong under alex's watchful
gaze, until the thing worked. Then spent a while smoothing out some
bugs. It seems to be working almost 100% right now, although I wish
we had a better way to mark external links than with a png that
may eventually clash with someone's zen theme.
- Tables in writeups: My work with the table code was quite
minimal, just helped a little with debugging. The code is call's,
and putting it in place was Oolong's work.
- Catbox frivolity: Because I keep stalling fulfilling the
promises of root log: september 2007, I started messing around
with silly catbox things, such as making /whisper commands synonyms
(/small, /aside, /monologue) and /sing synonyms (/rap, /chant,
/song, /gregorianchant). The reason is that the catbox is one of the
simplest pieces of code around here, or perhaps just for me because
it's one of the things I cared about the most at first. I keep
telling myself that working on easy stuff isn't bad, because it's
good practice for the hard stuff. (NB to clientdev: you guys only have to worry about
implementing /me, /whisper, and /sing; all synonyms will show up as
one of those).
Additionally, /me now is separated by space or punctuation, so
things like "/me's happy with the new changes" or "/me, surprised,
looks again" will now work fine.
- Other Users changes: The first change was to add a new
feature to Other Users: spying on other users (enabled in your user
settings) now also randomly tells you if one of your fellow users
has noded within the last week, and what they noded. This was
jessicaj's idea, OKed by alex. Then alex suggested an
interesting feature to sort Other Users by number of writeups within
the last year, which I implemented. Your recent writeups are counted
in My Recent Writeups, and a change I made to display the count in
your homenode was rolled back by Oolong. I might add a user
preference to show others in your homenode how much you've recently
noded,
if there is demand for it. Screw demand. I went ahead and did it anyways.
- Scratch pads editable by eds and admins: Although most
users won't immediately see this change, while debugging other code
I came upon the baffling obstacle of not being able to see a user's
HTML source in their scratchpad. I scratched that itch, and after a
few tries and debug sessions, I enabled scratchpad editing for eds
and admins. Let ordinary users be aware that with the same
responsibility that eds and admins exercise for everything else,
they may also according to their better judgement edit your public
scratch pads. As a privacy issue, eds and admins cannot
see your private scratch pads.
- Statistics nodelet: A minor change, the statistics
nodelet now counts the number of laynoder nodes (i.e. writeup
containers) instead of counting every single thing in the database.
If I find an efficient way to do this and there's demand, I might
also add a statistic for counting the number of nodeshells.
- Usergroup changes: Two minor things: one, if you are in a
usergroup because you are in one of the usergroups it contains
itself (e.g. you are in chanops because you're in e2 contact or
in content editors because you're in gods), you now get a box
for messaging this usergroup. Also, if you own the usergroup,
simple usergroup editor will now tell you who is ignoring the
usergroup.
- Message Inbox and homenode edit changes: This isn't my
code, but fellow edevite raincomplex's code; I just implemented it
and helped debug it a little. A few more buttons for helping
archiving or unarchiving your messages in Message Inbox, plus a
button for selecting all of your bookmarks for removal in your
homenode edit.
- Revoting: This is still in alpha, and we're currently still discussing if we should make it go live
or not, but the idea right now which I've coded up as a mockup is
that you can change your vote on a writeup, costing you another
vote, but there will be no further changes, i.e. both your GP and
the votee's XP will stay fixed with a revote. This is intended to
fix voting misfirings or change a downvote to an upvote if an author
made a conscientious effort to improve a writeup. I suppose that if
an author makes a writeup worse, or whatever else may tickle your
fancy, you can also change an upvote to a downvote. Currently
quick(re)voting is not yet implemented, but if you want to see what
it could look like, have a look at
Swap's
playground on the development server.
In addition, there are also a bunch of minor bugs that I will mention
quickly:
- New Other Users code barfed on funny characters, not
anymore.
- Fixed broken links in anonymised "created by" notices in
nodes/nodeshells.
- Fixed some character encoding issues with the catbox. DonJaime also submitted some patches for this.
- Addressed a problem where eds either could /msg or edit other
scratch pads, but not both
- Addressed various bugs with external linking; now external links
can be multiline.
- When external links are pipelinks without anchor text, a default
[link] anchor text is in place, this mostly to address a few
catbox mistakes of hitting enter right after putting the pipe in an
external link.
- Made it a bit harder to mis/msg in the catbox, now "/msg noder"
without any message text doesn't do anything instead of dropping
into catbox.
- Allow bona-fide external links when displaying details of catbox
client like Frogbox.
- Don't show Webster's nodes in Do you C! what I C?, since they're unvotable.
That looks like everything so far. Now, to paraphrase one of my
predecessors,
bugs go to Swap