Placing a foot into the other camp [entries|reading|network|archive]
simont

[ userinfo | dreamwidth userinfo ]
[ archive | journal archive ]

Mon 2011-03-14 14:33
Placing a foot into the other camp

More migration seems to be occurring, so it's probably about time I got round to doing this: I'm now simont.dreamwidth.org as well as simont.livejournal.com. I have no plans to deactivate my LJ or stop reading stuff via it; I expect to cross-post everything and accept comments anywhere people feel like posting them.

There will doubtless be annoying teething problems as I sort out this dual presence and integrate it with the rest of my setup. In fact I've already made one cock-up just in the last half hour, by pasting the wrong list of usernames over from my previous OpenID-based presence on Dreamwidth and then hastily correcting. People who've unexpectedly found I subscribed to them and then unsubscribed again immediately: it was part of a mass update gone wrong, no personal insult was intended, and I'm very sorry.

LinkReply
[personal profile] lnrMon 2011-03-14 15:01
Ah, I solved the problem: I recently changed the email address I use for DW comment notifications, and I hadn't confirmed the new email address!
Link Reply to this | Thread
[personal profile] lnrMon 2011-03-14 15:11
This is still working :)

How confusing for anyone not reading both!
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 15:12
Oh good :-) Unfortunately my email notifications seem to have stopped, and I know they were working twelve minutes ago. Sigh.
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 15:13
No, I take that back – I was just impatient. There it is. Phew.
Link Reply to this | Parent | Thread
[personal profile] lnrMon 2011-03-14 15:16
:)

Irritatingly DW doesn't seem to be able to send me notifications of my *own* comments here, only of replies to them. Although I should probably go double check that's still true
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 15:30
I just checked that myself (it's a killer feature as far as I'm concerned and I want it too). It looks as if DW does support it, but only if you have a paid account.
Link Reply to this | Parent | Thread
[personal profile] pneMon 2011-03-14 15:55
Not surprisingly, since that's how it works on LiveJournal, too, TTBOMK.
Link Reply to this | Parent | Thread
[personal profile] lnrMon 2011-03-14 18:16
I've had a paid/permanent account over there for so long that there quite possibly several features I use without realising they're not available to non-paid accounts.
Link Reply to this | Parent
[personal profile] livMon 2011-03-14 15:17
Welcome to the Other Side! I assume you've probably seen that you can set things up so that DW handles crossposting to LJ automatically? And I'm impressed you were able to replicate your pretty page layout over here.
Link Reply to this | Thread
[personal profile] simontMon 2011-03-14 15:36
Crossposting: yes, though since I post to LJ via my own custom software I have yet to work out whether it'll be easier to have that or DW do the crosspost...

Page layout: actually, I sorted that out way back in 2009 when I set up my OpenID presence, and did the porting work to adapt my custom style to the (small) changes in the Dreamwidth version of S2. So this time round it was no trouble at all – I just pasted the layout code I already had into this account, and it worked just as well here as there.

(Though I notice there are a couple of things wrong with it, most immediately the absence of the standard Dreamwidth 'you are logged in as foo, handy links and stuff' bar at the top. I may have to work out how to get that to show up.)

Welcome: thank you! :-)
Link Reply to this | Parent | Thread
[personal profile] livMon 2011-03-14 15:51
The bar at the top we call the "Navigation Strip"; there's a full range of settings in the Display settings tab. (Basically one of the first changes that DW made to the LJ codebase was to give much finer control of where the nav strip is visible, and to display it on a per-user basis rather than a per-journal basis, so that people don't need to impose their preferences on everyone else.)

The layout porting thing, I should have guessed you'd find it pretty straightforward! I keep getting people asking me how to do it, and I say, oh, you just change these three variable names and these two functions, and they complain that's way too complicated. But we did try not to break S2 too much when we were modernizing and rationalizing it (and that was a dev task that I was pretty heavily involved in, so I'm somewhat proud of it).

Custom posting software, hm. What are you doing for backup / archiving? Because I used to use LJArchive, which has a Windows GUI, but it times out trying to back up the whole of my Dreamwidth journal. I think what I need is some kind of script I can run that will talk to DW's content exporter (Perl or Python or whatever more knowledgeable geeks convince me is suitable); do you have any ideas about that side of it?
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 16:00
there's a full range of settings in the Display settings tab

Thanks; I hadn't spotted that. Unfortunately all the boxes are ticked and the navigation strip still isn't showing up for me; my guess is that that's because my S2 code is failing to call whatever method optionally inserts the navigation strip into the generated HTML. I should probably just go and find the docs and work out what I should have called and where. (Which of course will be easier now you've told me the proper name for it.)

Custom posting software, hm. What are you doing for backup / archiving?

Hmmm. Perhaps I should have said "horrible hacky script" instead of "custom software", to give you a better idea of its general level of organisation :-) I don't have a full-on client by any means; all I've got is one script which lets me write posts in a markup language I made up off the top of my head, and then formats them into HTML for LJ, into plain text for posting to a private journals newsgroup, and into colour-enhanced plain text for posting to Monochrome BBS (where I've maintained an online diary since before LJ and blogging were famous :-).

Archiving of my LJ is something to which I have so far not taken a particularly joined-up approach. The posts I make are archived in the form I post them on Monochrome, because I happened to already have the technology to do that. Comments on my posts are archived either in my email archive (which is why I like self-comment notifications) or in a big directory of HTML files I created one day by spidering my entire LJ (the idea being that the latter covers all the comments from before I started keeping those emails).

It would probably be a good idea to look into sensible content exporters, but it's a long way down my to-do list at the moment...
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 16:13
Aha, found it. It's called Page::print_control_strip(), as it turns out.
Link Reply to this | Parent | Thread
[personal profile] livMon 2011-03-14 16:21
Yeah, I was just about to say that the names in the code don't always match the names in the docs. Dreamwidth is turning into one of those Open Source projects that has issues with documenting things properly, either for users or for developers. Anyway, you found it faster than I had time to explain this to you, so.
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 16:30
I still found the name by searching for "navigation strip" on the S2 wiki; the names may be different but they show up close together in the code, so it's easy enough to follow the clues and end up in the right place :-)
Link Reply to this | Parent
[personal profile] pneMon 2011-03-14 16:01
backup/archive
FWIW, I use both LJArchive and [livejournal.com profile] ghewgill's [livejournal.com profile] ljdump Python script. (Though I hacked at it a tad at first - partly because it broke on Windows if icon keywords contained certain "bad" characters when it tried to convert the keyword to a filename, and partly because I didn't want it to backup userpics every single time, since that takes pretty long, since it always downloads the entire lot since it can't tell which ones are new.)

However, I haven't tried to get either of them to speak to Dreamwidth so I can't say whether that would work or whether the API has changed too much. Worth a try, I suppose.
Link Reply to this | Parent | Thread
[personal profile] livMon 2011-03-14 16:26
Re: backup/archive
LJArchive speaks to DW just fine. But as far as I can tell there's no way to modify its timeout limit. A friend of mine, [personal profile] pseudomonas, wrote a script that would go through LJ posts and replace each one with a link to the imported post on DW. So I imported my entire LJ in order to test it, and this had two unfortunate effects, firstly that I couldn't get Pseudomonas' script to compile at all, even in an apparently identical environment. And secondly doing this made my DW journal too big for the program to cope with; it times out at 30 minutes and there doesn't seem to be any way to get it to do a smaller range at a time.

I'll see if I can get the Python script you mention to work, cos I feel uncomfortable with half a year of DW only existing in the cloud!
Link Reply to this | Parent
[personal profile] livMon 2011-03-14 16:46
Re: backup/archive
OK, I'm not able to get ljdump to work on DW; it's rejecting the password although I'm pretty certain I entered it correctly. It may be that someone more techy than me could tweak it to work; I don't think DW has changed its API that much.
Link Reply to this | Parent
[personal profile] simontMon 2011-03-14 16:45
Hmm. Now I'm pondering crossposting. It looks as if it would indeed be easier to get DW to crosspost for me than to do it myself, because then DW will know both the resulting URLs and be able to insert cross-links.

In the page you link to there I see a lot of configuration options for inserting a footer on the LJ side. But what controls the "xpost" footer on the DW side, as on [personal profile] jack? (Or is it always-on?)
Link Reply to this | Parent | Thread
[personal profile] livMon 2011-03-14 16:56
I have a bad feeling that may not be user-modifiable. However, you can do set text_meta_xpost = "Crossposts"; to change what it's called in the footer. Changing how it displays beyond that, at a first glance looks impossible (it's in the so-called metadata, which is all called from the backend and you can't do anything with it by tweaking layout code.)
Link Reply to this | Parent | Thread
[personal profile] simontMon 2011-03-14 16:58
"Not user-modifiable" meaning always on, rather than always off? If so, that's not a problem – I'll want it on! :-)
Link Reply to this | Parent | Thread
[personal profile] livMon 2011-03-14 17:02
Yeah, always on, though you can hide it with CSS. But you can't change its position in the entry or the format it uses for the crossposted URL or make it only display in posts longer than 300 words or whatever.
Link Reply to this | Parent
[personal profile] simontTue 2011-03-15 11:09
Hmmm. I don't like to keep pestering you, and feel free to tell me to stop or redirect me to the proper support service, but since you've seemed enthusiastic about offering help so far...

I think I've set up my posting script and LJ crossposting properly now (though I'll know for sure the next time I make an actual post), but one thing I haven't got to work is the DW equivalent of the LJ "checkfriends" service. When I ask LJ if there's been an update on my friends page, I get this output from my polling script (which just formats the input and output parameters of the request as Python dictionaries):

Input: {'lastupdate': '2011-03-15 10:32:55', 'mode': 'checkfriends'}
Output: {'lastupdate': '2011-03-15 10:32:55', 'interval': '120', 'success': 'OK', 'new': '0'}


But doing the same on Dreamwidth gets me this rather less helpful thing:

Input: {'lastupdate': '2011-03-15 10:32:55', 'mode': 'checkforupdates'}
Output: {'lastupdate': '', 'interval': '36000', 'success': 'OK', 'new': '0'}


I've searched the Dreamwidth wiki and found the documentation for the method, which suggests to me that "lastupdate" should not be coming back as a blank string. (Admittedly I'm calling it via the LJ-style "flat" interface rather than the XML-RPC version, but it doesn't look as if that should affect anything more than the formatting of the wire data and the underlying set of fields ought to be the same either way.) Also, that poll interval is pretty unfriendly – I thought the purpose of this method was to give people an alternative to constantly reloading their friends/reading page, which it surely won't do if it demands you only call it once every ten hours.

So would you happen to know if this protocol feature is supposed to work on DW at the moment (or if it would start working if I got a paid account, perhaps), or failing that where else I might usefully look other than the docs I've found so far?

(I also couldn't find full documentation for the more sensible forms of challenge/response authentication. I can see the getchallenge request type, but I haven't found anything about how you encode a response given your challenge.)
Link Reply to this | Parent | Thread
[personal profile] livTue 2011-03-15 11:43
I'm in principle happy to help; one of the things I love about DW is getting my hands dirty in this Open Source world, and sharing all the random little bits I have learned about the codebase is very exciting for me. (Yes, I know all the other geeks have known this for 20 years, I'm slow.)

However you're getting to the point where you're asking questions beyond the limits of my technical knowhow. You've picked up enough from the docs to replace checkfriends with checkforupdates, which is the usual thing that goes wrong with porting stuff over from LJ. I have a feeling it's deliberate that it's set at an excessively long poll interval (and quite possibly disabled altogether) for free accounts (it used to be that way on LJ too, at least back in the day).

The official Support place is http://www.dreamwidth.org/support/submit. But there aren't many volunteers active there with more technical knowledge than me. For this kind of properly technical question, you'd do better asking in [site community profile] dw_dev, because the people who actually know this stuff watch that.
Link Reply to this | Parent | Thread
[personal profile] simontTue 2011-03-15 12:19
I have a feeling it's deliberate that it's set at an excessively long poll interval (and quite possibly disabled altogether) for free accounts (it used to be that way on LJ too, at least back in the day).

Hmm, now you mention it I do remember checkfriends being a bit iffy when my LJ account was a free one. (Which it hasn't been for years – I got given a permanent account free of charge in gratitude for PuTTY – so my memory of free account behaviour is somewhat hazy.)

I must say I never really understood that policy on LJ, though. I think it's a mistake to pitch checkfriends / checkforupdates as a premium service provided for the benefit of the user paying for it; its purpose is to reduce load on the LJ/DW servers, so it's a feature provided for the benefit of the site administrators, and hence it surely should be more beneficial to the site admins the more users it's provided to. In particular, if I can't use checkforupdates at two-minute intervals, then the obvious alternative is not to wait ten hours between checks but to reload my actual friends page every two minutes, which is more CPU-intensive due to having to run the S2 and lay out all the HTML – so by denying any user a working checkforupdates they're increasing the load on their server.

Still, that's not your problem, of course. And I suspect I may end up getting a paid account anyway (I want a network page, notifications for my own comments, and comment editing – LJ's gift of a permanent account has apparently had the effect of getting me accustomed to those features, and hence making me want to give DW money :-), in which case it's not my problem either...
Link Reply to this | Parent
[personal profile] simontFri 2011-03-18 09:29
I have a feeling it's deliberate that it's set at an excessively long poll interval (and quite possibly disabled altogether) for free accounts (it used to be that way on LJ too, at least back in the day).

For the record, I can now confirm this: I upgraded to a paid account this morning and suddenly checkforupdates is behaving sensibly.

I still don't see the sense in the policy, and it would have been nice to have an error message rather than getting back an unexplained blank string (I did get a nice error message when I tried to use checkfriends, which is how I knew to rename to checkforupdates), but at least the cause of the issue isn't in doubt any more :-)
Link Reply to this | Parent
[personal profile] sunflowerinrainMon 2011-03-14 17:37
Yay! Welcome to here :) xx
Link Reply to this
[personal profile] twigletzoneTue 2011-03-15 18:05
Erro! *adds*
Link Reply to this
navigation
[ go | Previous Entry | Next Entry ]
[ add | to Memories ]