Dealing with recommendations (scifi.stackexchange.com)

One of the problems that scifi.stackexchange.com faces that isn’t unique to that site is “recommendation” questions. These are a specific type of list question (which are generally ill-suited to the sites), where each answer offers one possible recommendation, and the votes cast are not just “that’s a good answer” or “that’s a bad answer”, but votes for (and less often, against) a suggestion. StackOverflow has a long history of problems with these sorts of questions (e.g. “favourite programming cartoon” and “great programming quotes“).  With few exceptions, these questions are closed, often not before they gather huge numbers of votes, answers, and answer votes.

I don’t really see a huge problem with these questions myself – if they are “community wiki” then they aren’t just a way to gather huge amounts of reputation, the voting has merit (if something is popular, it is likely for a reason), and the format does fit (unlike discussions, for example).  I can understand that a specific site might choose to disallow them (e.g. StackOverflow), but others (e.g. programmers.stackexchange.com) could allow them.  I don’t think that having the majority (or even just a non-small percentage) of a site’s questions be ones of this type would do much for the quality, but in moderation they seem ok.

I doubt this would ever be allowed by the powers that be at StackExchange, but I think the following would be a great system for scifi.stackexchange.com:

  • Once a month a new meta.scifi.stackexchange.com question is opened that asks what this month’s recommendation (or perhaps more generally, poll) question should be.  People make suggestions and up/down vote the ideas that they like (yes, a poll about a poll – however, poll questions seem to be acceptable on meta sites).
  • One a month, the most popular answer of the previous month’s meta question is created (e.g. by a moderator, ensuring that the question is community wiki).

I think this strikes a great middle-ground.  These types of questions are generally incredibly popular, and that would help get people coming to the site (something that scifi.stackexchange.com needs, but others, e.g. StackOverflow, do not, since it’s already at near saturation).  Since there would only be one of these each month (others would be close-voted, with comments pointing to the relevant meta discussion) they wouldn’t dominate the site (even one a week would presumably be only noise compared to the number of other questions).  Many more users would find themselves interacting with the meta site – hopefully some of these would explore more than just the one question they came for, and end up participating in community building, support, moderation, and so forth – perhaps these users would otherwise not have ever visited the meta site.

Other arguments against these types of questions tend to be: they age badly (this could still be true, but hopefully the pre-asking meta stage would assist with that, and there’s always down-votes), they provoke discussion (discussion answers/comments can be flagged, discussion in chat is a good thing), and they don’t provide interesting answers (I totally disagree – especially in the context of a Q&A site dedicated to fiction).

The Internet was built by sci-fi fans (scifi.stackexchange.com progress report)

scifi.stackexchange.com has been in beta for a couple of weeks now, and has gone through quite a few struggles.  Although I’ve been a StackOverflow user since the very early days (2 years, 4 months now), this is my first experience with a StackExchange site in the beta stage – it’s possible that all of the sites have these troubles, although it does seem like they are particular to a topic like “science fiction” more than more concrete topics like mathematics, cooking, or theoretical computer science.

Most of the issues boil down to two: how should the moderators interact with the site, and exactly what is on-topic.

In an effort to save the site from its community, the (SE employee) moderators have chosen to take a very hard line.  Rather than let the community police itself, they’ve decided that it’s better to act as quickly as possible to remove any questions that aren’t suitable (in their opinion) and hope that if there’s any disagreement that it will be take up on meta.  This policy does appear to be working, so perhaps that’s enough validation.  In my opinion, letting the community close the bad questions would be better in the long term (and only slightly slower in the short), and the moderators’ time would be better spent educating the community leaders in the meta site.  Hopefully, this will become less of an issue as the more major question of what’s on topic is answered, and pro tem moderators are elected from the community.

I’m not sure exactly how much of the graduation of a site from definition to commitment to beta in the Area51 system is automated.  It’s possible that no human was involved in the progress.  I think if there was, that would help – the majority of the example “on topic” questions for the site are, in fact, deemed off topic, and it seems likely (given their comments) that the StackExchange staff would have been able to point that out before the site opened.  Perhaps the 5 “on topic” examples for each site could be examined when “commitment” is reached, and if the StackExchange staff can see questions that just won’t be acceptable in the StackExchange model, the proposal can be bounced back into definition (with an explanation).

The much more pressing issue is to decide what’s on topic for the site.  There seem to be some clear-cut decisions: questions about writing are out, questions that could be answered by a basic check of IMDB are out.  There are many more that are unclear.  There’s a meta question asking to define the “elevator pitch” for the site, which will help a lot.  Unfortunately, the answer that’s voted highest at present isn’t one that I think would make an interesting site (and it’s certainly not one that I’d be interested in spending much time on).  There’s another answer that’s much closed to a good site – I think one of the main weaknesses of that answer is that it’s not “pitchy” enough.  I’ve considered having a go at a pitch myself, but the pitch has to be concise (by definition), and conciseness isn’t a strength of mine, which means that even if I got the topics right, it wouldn’t be a good pitch.

What I’m hoping to see scifi.stackexchange.com become involves these sorts of questions:

Story identification. These have gone through a rough ride: one of the (SE employee) moderators mistakenly thought that these were outright-banned, when in fact they are merely held to a higher standard than average questions.  This lead to a lot of confusion that was only resolved in the last couple of days.  It’s clear now that the community can choose to allow them (again, assuming they are well asked), although it’s not clear whether everyone agrees that they should be.  I think they will form an invaluable and essential part of the site.  Reading the questions and the answers is an excellent way to find new material (without opening up poll/recommendation questions), and is the way to entice new users into the site/community.  Once these questions are indexed, identifying the material will be simple via a search engine, as well.

“Trivia”. The problem is that it’s hard to define “trivia”; literally it’s something of small importance – this is of course, extremely subjective (the majority of StackExchange questions are probably of small importance to most people – that’s what addressing the long tail is all about).  Questions that only allow for uninteresting answers clearly aren’t of value (although uninteresting is again subjective).  The voting system provides a good mechanism of determining this – especially combined with reputation and tags.  A good metric is that good answers are generally long answers.  I do think it’s possible to have something that some people would call “trivia”, but be long and interesting.

Answers found elsewhere: one of the reasons that StackOverflow was such a success was that there was a huge vacuum that it filled.  This isn’t so much the case with a science fiction Q&A site (although hopefully there is some vacuum).  Practically every Science Fiction TV show, movie, or popular book series has some sort of wiki site dedicated to it, usually filled with encyclopedic quantities of information about everything to do with that series.  For those few that don’t have their own site – and those that do – there’s Wikipedia entries on everything as well.  The Internet was built by scifi fans – this shouldn’t be a surprise.  I hope that the eventual consensus is that there’s no way to draw a line here, and questions have to be judged on their own merit.  If you can figure out the answer to your question with a single Google search and skimming a wiki page, then there’s no real value duplicating that content.  If you have to read through a lot of wiki pages, or they’re really hard to find, or if you need more conjecture or opinion than a wiki page allows, then that should be ok.  I would like to see these questions left alone, and (e.g.) if they get go below -1 votes, then vote to close.

Something in the source material: related to the previous, obviously. Here you can’t find the answer online (or at least it’s very difficult to), but if you had the source material (the book, the TV episode, the movie), then you’d be able to figure it out.  I think these are borderline, too.  What if the book is out of print (or otherwise rare), or the TV episode isn’t available on DVD (or purchasable online)?  Not everyone keeps everything that they watch/read.  I think that makes it too hard to create a blanket rule about this sort of question.  If the question’s not good, then it’ll get voted down (e.g. if anyone that has every read the book would easily remember and could explain in a sentence).  If it is good, then it’ll get voted up.

Real world: questions that relate sci-fi to the real world are interesting, but to be useful I think they need to be very specific, otherwise it’ll just degenerate into discussion/argument.

Sci-fi for dummies: not what I’d call it on the site, but face it – sometimes the science in the science fiction is complex (especially in ‘hard’ sci-fi).  Getting a bit of help figuring a plot point or allusion out seems like a great use of the site.

Industry information: questions about writing are apparently out (go ask on writers.stackexchange.com).  However, there’s still industry specific questions that could be useful – although it’ll be hard to ask a truly interesting question (e.g. “how do I contact author X” is answerable by a single link to a website generally, and “what convention is good” is considered bad form on StackExchange sites).  I haven’t seen any questions like this yet, but I suspect they will turn up eventually, and perhaps be rare gems.

I think a good elevator pitch would start with: scifi.stackexchange.com: a place for fans of all science fiction, not just one series, to help each other out, with … Perhaps I’ll manage to figure out the rest of that and submit it as an answer in the next few days.

scifi.stackexchange.com

The Science Fiction StackExchange site came out of private beta today.  It’s not the first proposal that I committed to that has made it to beta (that was Card/Board games), I’ve found it more interesting (so far) – Card/Board games has so far focused on a lot of games that I have no interest in (and I’m not so interested or have enough time to ask a lot of questions myself).

Awesome looking stuff.  Go buy some :)

The current state of scifi.stackexchange is a little worrying – as might be expected, there are a lot of list/opinion/subjective/discussion questions, which aren’t really a good fit for a SE site.  A lot of questions are “community wiki”, which reflects this, and that means that reputation is hard to come by for many users.  It seems like there might already be a lot of ‘definitive’ factbook-type sites for many of the major scifi stories (e.g. wookiepedia for Star Wars), and there’s little point just duplicating that information (even Wikipedia has a lot of data, presumably because of a sci-fi bias among many of the editors).

However, there does seem to be a lot of potential for the “long tail” type of questions that SE is designed to address.  There’s certainly a lot of lesser-known scifi novels/TV shows that don’t have a lot of information about them online.  It looks like “identify this book” type questions will be acceptable as well, which definitely seems like it would be valuable (even when coming from a Google search).  Overall, I’m hopeful – so go check it out!

I’m still waiting for the Parenting StackExchange site to reach the beta phase.  It might end up being a huge mess of subjective opinion, but it might also end up being a truly valuable resource.  If you’re interested, commit!

Trac to iCal

One project I work on uses Trac and has a custom “due date” field (it doesn’t really have milestones – updates are more granular).  While this is useful, one problem is that I don’t check this Trac instance every day, and so sometimes I’ve missed deadlines because I haven’t noticed that they are due.  However, I do check my calendar every day (multiple times a day).  It seems like exporting this “due date” value into my calendar will help with this.

This little script creates a calendar that can be subscribed to.  I run it once a day (due dates don’t change very often), and have iCal set to update once a day, so it should work fine.  If it’s of use to you, use it (no restrictions).  Let me know if there are things that can be improved!  It requires the Python iCalendar module, which I already use for parsing public holiday data.

#! /usr/bin/env python

import sqlite3
import datetime

import icalendar

cal = icalendar.Calendar()
cal.add("prodid", "-//PROJECT NAME Trac Deadlines//trac.tonyandrewmeyer.com//")
cal.add("version", "2.0")
cal.add("method", "publish")
cal.add("x-wr-calname", "PROJECT NAME Ticket Due Dates")
cal.add("x-wr-caldesc", "Due dates for PROJECT NAME tickets")
db = sqlite3.connect("/trac_location/db/trac.db")
c = db.cursor()
c.execute("select t.id, t.owner, t.summary, c.value from ticket t, "
           "ticket_custom c where t.id=c.ticket and t.status!='closed'")
for ticket_id, owner, summary, due_date in c.fetchall():
    if not due_date:
        continue
    due_date = datetime.datetime.strptime(due_date, '%d/%m/%Y')
    due_date = datetime.date(due_date.year, due_date.month, due_date.day)
    event = icalendar.Event()
    event.add("summary", "PROJECT NAME #%s (%s): %s" % (ticket_id, owner, summary))
    event.add("dtstart", due_date)
    event.add("dtend", due_date)
    event.add("dtstamp", datetime.datetime.now())
    event.add("url", "https://trac.tonyandrewmeyer.com/ticket/%s" % ticket_id)
    event["sequence"] = datetime.datetime.now().strftime("%Y%m%d%H%M")
    event["uid"] = "ticket_due_%s@trac.tonyandrewmeyer.com" % ticket_id
    cal.add_component(event)
c.close()
db.close()
open("/var/www/subfolder/project-name-trac-due.ics", "wb").write(cal.as_string())

Sleep Cycle Alarms for Two

My body clock works well – I almost always wake up each morning on time, feeling refreshed and well rested.  I only use an alarm when there’s something I absolutely can’t be late for, and even then I set the time to be the last possible moment because I’ll always wake up before it goes off [1].

If this was also true for Olyvia, there would be no problem.  If I wake up before her, she doesn’t wake up – I quietly spend 30 minutes or so going over email, news, FaceBook, Twitter, work, etc in bed, and even if I get up before her it’s unlikely to wake her up.  Unfortunately, Olyvia does not wake up well naturally, and so she does use an alarm whenever she needs to get up at a particular time (which is often at the moment).

Recently, she has started using an iOS app to wake her (with an alarm) at the ideal point in her sleep cycle (i.e. the app is helping her do what I do naturally).  She says that this works extremely well for her.  Unfortunately, I believe it does work, because it’s waking me up too and I feel terrible (I’m clearly not in the right state to be waking up).

It seems a significant flaw in these sorts of applications – whenever you wake up the user, it’s quite likely to be a poor time to wake up whoever they are sleeping with (unless there’s some sort of odd synchronising of sleep cycles that I am unaware of).

However, this seems easy to solve (and if anyone can take this idea and implement it, please do so – free! – so that I can sleep well again).  iOS provides simple-to-use APIs for communicating with other local iOS devices.  I, like many people, have many iOS devices lying around.  If you can solve the “when to wake” problem given a fixed point and a sleep state, it seems likely that solving the problem given two sleep states (presumably overlapping somewhat at times) and a fixed point cannot be too difficult (probably less optimal, but better two near-winners than a winner and a loser).

This would be simple to use – you set the alarm to coordinate with another local device, and when it is ready to wake you up, it confirms with that device first.  They negotiate the ideal time given the two sleepers, and the alarms go off simultaneously (I’d set my alarm to silent since I don’t need it).  They can communicate with Bluetooth or WiFi, whichever is less likely to fry my brain by having it under the pillow.

An odd message

I received this rather odd message the other day (Facebook is a truly strange system).

I’m not really sure what to make of it.  There are quite a few oddities:

  • The message comes from a “Jason Reeves”, who I do not recall (but my memory isn’t great, and it was 14 years ago).  A quick Google only turns up a Jason Reeves who works for a radio station in NZ (and wikipedia indicates that isn’t the same one).
  • The Facebook account is under the name “Jason Smith” (this name is also unfamiliar, although I think I would be more likely to remember the name “Reeves” than the name “Smith”).
  • I can’t find anything about the “NZER” organisation mentioned twice via Google.  It’s pretty odd for a modern company to be nowhere in the first few pages of Google results.  “NZER” is a bad name (because it clashes with “NZer”, as in “I am a NZer”), but even still it ought to have some sort of pagerank. (nzer.co.nz and nzer.org.nz and nzer.com do not seem relevant here).
  • I was indeed a Kamo High School student in 1996, and knew both Andrew and Simon (IIRC Andrew was only at KHS for a year or two).  I haven’t heard from/about either since.
  • What possible use could my opinion of people I knew 14 years ago be?  Even if there wasn’t such a gap in time, why would I as a peer be an appropriate person to make an academic evaluation?  Surely a teacher would be a more appropriate choice.

I replied – basically just asking for more information – so we’ll see what happens now.

Displaying PDFs via the iPad

I used the iPad’s external screen output for the second time today (the first was trying out Chopper 2 with the TV as the screen and iPhone as controller) – this time not just as an experiment.

I have a set of revision worksheets (all PDFs that I inherited many years ago – I might have Word documents somewhere, but I’m not sure where).  Going over the questions in class, I can simply read the question out loud (but people don’t listen well enough and can’t ‘go back’ to it), or write it on the board (slow, handwriting code is problematic when you’ve got messy writing), but ideally it’s projected. Continue reading “Displaying PDFs via the iPad”

D520 Week Three – 2010

Last year Chapter Four of IronPython in Action was covered over two weeks (the lab is also a two-part exercise), and I felt that worked fairly well, so kept the same plan for this year, although the exact parts that were covered each week changed.  As usual, the students received notes [PDF], and a lab exercise [PDF], and two recommended reading items, both by Brent Simmons: one on how improving quality is non-linear, and one on how your own code is always improving.  The notes again cover the textbook, key points, and example code (although most of the example code is MultiDoc, so just links to the online copy. Continue reading “D520 Week Three – 2010”

D520 Week Two – 2010

No radical changes from either last year’s week two or last week.  In a way, this is the real first week – in the previous week we learn about the course and about what IronPython is (and remember how to program in Python), but we don’t do much more than that.  In the second week, we really get into doing some actual IronPython programming.  I gave the students notes [PDF], and the first assessed lab exercise [PDF], and the recommended reading was two Joel Spolsky posts: one on (IT) customer service and one on how hardware improvements impact software design.  The notes are again in three sections: textbook chapters (this week is Chapter Three, a fairly essential introduction to .NET and IronPython), key points, and example code (from Chapter Three).  The lab is essentially the same as in previous years. Continue reading “D520 Week Two – 2010”