Around the wifi issues, preparation is underway!
Posts between 2015/08 and 2015/09 (35 out of 35)
- List required functionality from each user story.
- Cluster related functionality, find overlap between stories (see colours/tags).
- Organise requirements into shortlist.
- According to some filter, eg. by a certain user, posted to a certain group.
- Undo a subscription.
- Including text, photo, video, audio.
- Including metadata and relations to other things, ie. audience/to, tags, reply-to, likes.
- Update published content.
- Delete published content.
- User is somehow alerted when content is created that explicitly targets them (ie. as recipient or subject).
- According to permissions.
- Discovery of content according to criteria:
- type (text, photo..);
- associated with group;
- created by a particular user;
- by the content's target (replies/likes of a particular post).
- Publishing a photo. pub
- Push notifications. notif
- Subscription to a user. sub
- Commenting on / replying to a post. pub
- Publishing text content. pub
- Updating published text. pub
- Deleting published text. pub
- Reading comments / replies. read
- Reading posts from a particular user. read
- Viewing photos from a particular user. read
- Subscription to a user. sub
- Publishing a photo. pub
- See a user's subscriptions. sub
- Read posts from a particular user. read
- Unsubscribe from a user. sub
- Subscribe to a user (one way). sub
- Join a group ~= subscribe to group content. sub
- Publish a video. pub
- Publish audio. pub
- Private sharing. read
- Publish subscriptions. sub
- Liking / recommending a post. pub
- Subscribe to a user. sub
- View likes of a post. read
- Posting from one interface to another system (scope?)
- Reply to posts. pub
- Notifications. notif
- Subscribe to a user. sub
- Posting from one interface to another system (scope?)
- Publishing text content. pub
- Private sharing; specifying audience. read
- Notifications. notif
- 100g caster sugar
- 4 tablespoons refined sugar [golden] syrup
- 1.5 teaspoons bicarbonate of soda
- 130g caster sugar + 100g dairy-free margarine
- plus Three small apples very finely chopped
- plus 190g self raising flour + teaspoon baking powder
- plus ~140ml caramel rooibos, which I had brewed earlier (any liquid will do until cake batter consistency reached..)
- plus...
- People who don't understand what microformats2 are used for beyond SEO.
- People who like linked data, and think microformats2 is a small, centrally controlled vocabulary.
- People who think microformats2 is not extensible, and don't understand when microformats people say 'of course it is!'
- People who like microformats2 and don't understand when linked data people insist that it's not extensible.
- People who like microformats2 and don't understand what all the RDF fuss is about.
- Machines who can't read the microformats2 documentation (heh, just kidding, the contents of this post aren't machine readable, sorry machines, maybe one day).
- All new experimental properties could get a page on the microformats wiki:
- Con: the domain isn't under the control of the author, and the content could be edited by someone else, too.
- Con: someone finding the property who is unfamiliar with microformats has no idea where to look to find out more.
- All new experimental properties could get a description page on the author's own site:
- Con: someone finding it still doesn't know where to look for the documentation, from the property name alone.
- Mf2 is actually being used for social interop. Right now. That is not to be sniffed at, or dismissed as 'hacky'. Instead of saying that linked data can do the same thing but better... go do it.
- Starting by marking up with mf2 results in human-readable data foremost. Let's face it, they're still the most important audience, especially for social web. Figuring out what's important for humans helps you to prune what you really need to be publishing, and focus on rapid iteration (because people can see and interact with what you're publishing) rather than trying to pre-empt theoretical edge cases or getting hung up on hypothetical data models.
- Your vocabulary extensibility and documentation is what LD has a problem with, so claiming mf2 is extensible based on syntax alone is not helpful.
- People like to publish other kinds of data on the web, often more complex than can easily be marked up with mf2, and where consumption by machines is as useful as human readability. It also opens the door for mixing data from different domains on a massive scale. I know you're not interested in this, but don't dismiss linked data out of hand because of that.
Aw, wee hackers will fund their development with tracking and advertising.
Sigh.
Heh, app that detects two pebble-wearers fist bumping to transfer data is cool.
I'm never really sure what to think when kids are coming out with buzzwords and marketing speak and worshipping/pandering to tech giants.
"What was your biggest challenge?" - answer overwhelmingly "learnt new thing from scratch this week
API requirements derived from user stories
Draft post, in preparation for posting to SocialWG wiki
So far completed for approved user stories. ~~~~
Note: These requirements are deliberately limited by the contents of the user stories. If things seem obviously missing, this is because they were not referenced in the user stories. I've tried not to over-generalise when summarising them, too.
Process:
Requirements shortlist
In no particular order. Tags/colours map to requirements by story, below.
sub Subscribe to content
pub Publish content
notif Notifications
read Read content
Requirements by story
SWAT0
User posts a note
Reading a user's recent posts
Following a person
Read Social Stream
Integration: Adding recommendations
Integration: Adding comments
Direct messaging
Amy added 'GitXiv u2013 Collaborative Open Computer Science | GitXiv' to Bookmarks
+ http://www.elsevier.com/solutions/scopus
Amy added 'Scopus | The largest database of peer-reviewed literature | Elsevier' to Bookmarks
Noticing posters advertising shows for the Fringe dominated by white men. If I go to any this year, will have a minorities-only policy I think.
ILookLikeAnEngineer tho I'm not sure I'm engineering anything but confusion at the moment.
Honeycomb apple cakes
I made honeycomb! Strictly bee-exploitation free, of course. It was way easier than I expected, and didn't result in my entire kitchen becoming sticky. Just most of it.
Mix the sugar and sugar syrup together and heat until bubbling and golden brown. Lots of people seem to have trouble with this (burning it etc), but I never have when making caramel in the past and didn't this time. Just gotta not take your eyes of it. It doesn't take long. The fun part is removing it from the heat and quickly mixing in the bicarb, when it bubbled up spectacularly. Poured into a lined tin to cool:
I have to deal with this later..
It took about 20 minutes to cool fully:
And was amazing. Pretty much like the inside of a Cadbury's Crunchy:
I crunched some up and added it to vegan apple cupcake mix:
Equals:
(Icing was icing sugar, chopped apple and margarine).
The exposed honeycomb in the cakes burnt though, so watch out for that. The icing is a coverup. Nobody will know.
OH at Prewired: Learn Python, it can do all the things. Except some things. But learn Python.
+ http://dig.csail.mit.edu/2009/presbrey/UAP.pdf
Amy added http://dig.csail.mit.edu/2009/presbrey/UAP.pdf to https://rhiaro.co.uk/bookmarks/
Tales from the house I grew up in: my mother is on a Hangout and it's making IRC lag. Crisis.
+ http://www.gutenberg.org/files/2500/2500-h/2500-h.htm
Amy added http://www.gutenberg.org/files/2500/2500-h/2500-h.htm to https://rhiaro.co.uk/bookmarks/
my use of capitalisation and punctuation in textual communications definitely reflects my mood
In reply to:
Threaded replies are what all the cool kids are doing.
My new favourite thing about Edinburgh Fringe is the purple floodlight the BBC venue now has pointing DIRECTLY AT MY EYES through my office window.
Today, drummers outside the office window. Is the Fringe over yet? Please?
The Long Walk
Rikki and I walked from Edinburgh to North Berwick, almost 30 miles, in 11 hours. This is the longest walk I've ever done in one go, and I pushed my legs and feet to the absolute limit. Here's the GPS trace on Runkeeper.
We departed Edinburgh at 2am, and walked straight to Portobello.
From there, we just followed the coast. Next stop: Musselburgh.
The sun started to make an appearance around 5am, albeit on the other side of clouds. Looking back at where we'd come from, the distinctive shape of Arthur's Seat and the Crags:
And forward to the decommissioned power station at Port Seton:
From here, Morrison's Haven:
Murals welcomed us to Prestonpans.
Above is John Muir, whose Way we followed for most of the walk.
Undergoing deconstruction, the old power station:
And some very personalised graffiti in Port Seton:
Finally the rain let up (did I mention it had been raining for the entire first few hours?).
By now, the power station and Holyrood are recognisable silhouettes in the distance. Our feet were starting to ache slightly.
But beautiful beaches and encouraging signs awaited us.
Soon we were deep into golf course territory.
My knees were saying things like "ohai I see you've been walking for several hours now, might want to get that looked at."
So naturally we decided to take a 3 mile diversion via the Aberlady nature reserve, rather than head straight down the road to North Berwick.
This paid off with gorgeous empty beaches.
And interesting things from the sea.
Then we lost the path, scrambled through undergrowth, aggressive plantlife shredded my legs (why do I always head out in shorts?) and we emerged on a golf course. Bemused golfers advised us to get a bus, and directed us to the road. We had other plans, headed through private golf course residents land, with fancy houses.
"Look at those children, running around like they still have feet." - Rikki
We figured that if we were caught somewhere we weren't supposed to be, the worst that could happen is they'd take is to an office somewhere and... sit us down... in chairs!! Didn't seem so bad.
But we limped on, to North Berwick at last.
Except the distance between the 'welcome to North Berwick' signs and the town itself was eternal. We were both feeling a bit sick at this point, on top of all lower-body pain. But eventually we made it, and celebrated by SITTING DOWN.
Also chips.
We slept on the grass overlooking the beach for a couple of hours. Then limped to the train station. Some old ladies with walkers got stuck behind us in the street.
30 minutes and £4.10 later we were back in Edinburgh, via the sensible route.
The last book I finished was The Long Walk by Stephen King. That's pretty much all I could think about on this journey.
And now I'm at the privacy and identity summer school.
Super impressed with over 50% female keynote speakers at IFIP2015 summer school on privacy and identity management :D
Taking mobility for granted
On Monday evening my left knee started being painful, and very gradually has got worse over the past couple of days. I now can't use stairs comfortably in either direction, and sloping ground is starting to cause problems too.
It hasn't taken much for me to realise how much I take good mobility for granted. I feel hugely guilty whenever I've stepped in a lift to travel one or two floors today, and keep forgetting and skipping at stairs like I usually would; one step is enough to remind me that that way lies only pain. I'm distressed that I'm unlikely to be able to run this week.
Other inconveniences include having to remember not to sit with my legs folded under or beside me or crossed over like I usually do, and tying my shoelaces and picking things up from the floor being more difficult.
I'm not in that much pain, and it's all pretty minor really, and it'll probably be gone soon, but even this is having an impact on going about my day. I'm really posting this to remind myself, and anyone reading, to take more time to imagine life in this ableist world for people with more severe or long term mobility issues.
(Yes Mum, I've made a doctor's appointment).
OH at Prewired: "This is Minecraft, I can do whatever I want.
On extensibility of Microformats
This post is for:
tl;dr: The extensibility mechanism of Microformats is alien to people used to linked data because extensions that are not [yet] accepted into the core are not [consistently] documented by their authors to make them reusable, and from the outside the process for getting things accepted into the core looks very centralised and... cliquey. Things may also be confusing due to conflation of syntax and vocabulary.
Disclaimer: I'm writing this tongue in cheek because I have to entertain myself somehow, please don't take offence at anything.
From hereon I will refer to microformats2 as mf2.
Background: I use mf2 and linked data, and appreciate the benefits of both. From what I've heard from the people with the loudest voices, folks tend to be on principle on one side or the other, as if they're in opposition or fundamentally incompatible. Y'all should check your koolaid. My goal is not to promote one over the other, just to try to explain things as I see it and maybe clarify some stuff for some people. I'm sure there are people out there who use and appreciate both, but I can't say I've heard from many of them.
What are microformats for?
Mf2 has been adopted by the indieweb community for interoperability of social websites. There is now a large overlap between the microformats and indieweb communities. The scope of indieweb is social. Whilst technically the scope of microformats is everything one might want to publish about on the web, you might find yourself in debate with microformats advocates who dismiss anything not social as irrelevant:
Example debate 1
LD: I want to describe all of the properties of volcanoes, I can't do that with microformats therefore microformats is bad.
MF: Wat why would you want to do that? Linked data is stupid.
LD: I am a volcanoes researcher and I want to publish all my volcanoes data for other volcanoes researches to read.
MF: I don't care about volcanoes, bye. (exit stage left, muttering something about fax machines).
...just worth bearing in mind.
There are mf2 parsers in many different languages. If you parse mf2 from a page, and your code knows the mf2 vocabulary, you can do something useful with the data you've parsed. In the indieweb, we use this to find out who the author of a blog post is, what it's tags are, it's relations to other posts (eg. in-reply-to
), and other metadata. A practical example of use is when I am alerted (however that may be) that someone has replied to my post from their own website, my site can parse their post and display under my post "Bob replied to this on 1st August 2015 and said 'I fundamentally disagree with all of this.'", which might add value for other readers of my post. Because I've parsed out the metadata, I can decide which parts I want to display, and display them however I like.
Example debate 2
LD: But we can do that with linked data!
MF: Well... you're not. Come back when you are?
(Seriously, if you're doing social interoperability with linked data from your personal site, I want to interoperate with you, contact me).
Syntax and vocabulary
Syntax:
"The syntax of a language describes the form of a valid program" - Wikipedia
The syntax of microformats tells parsers where to get a value from when they encounter a certain property, using a defined set of prefixes. Eg. <span class="p-name">Amy</span>
tells the parser the value of name
is the plain text contents of the tag, ie. "Amy". <a href="https://rhiaro.co.uk" class="u-url">my website</a>
tells the parser that the value of url
is found in the href
property on the tag (and other places URLs are found). Here are the prefix rules. Parsers do not care what the property itself is, and all the parsers I've looked at drop the prefix for the parsed output (though this does mean a consumer of the parsed output loses any indication of the datatype of the value), so adding new microformats properties does not mean that parsers need to be updated.
Semantics:
"...meaning..." - Wikipedia
The semantics of mf2 come from the vocabulary, which is documented on the wiki. To add things to the mf2 vocabulary, one must go through the microformats process.
Example debate 3
LD: LD is better because if I want to add a new term I can just make one up myself and don't have to go through a centralised authority.
MF: Mf2 isn't centralised you just have to go through the process then talk about it in IRC and hope core community members approve. You can add it (and all of your going-through-the-process documentation) to the wiki yourself.
LD: What if core community members don't approve eg. because they are morally opposed to volcanoes? Also this 'process' seems long and arduous.
MF: The process helps keep the vocabulary focused and avoid duplication with what's already out there, over-engineering not based on practical implementation, or random useless cruft from creeping in.
LD: Actually us linked data people tend to do our due diligence and check for existing terms before we create new ones, and reuse what already exists, that's kind of a thing. By the way, on the web "anyone can say anything about anything", not "anyone can say anything about only things the microformats community deems appropriate".
MF: Well anyway, you can start using your new term experimentally, and see if it catches on.
So, to extend the current microformats vocabulary, you could do something like <p class="p-volcano-height">4000m</p>
. This is syntactically correct mf2, but not semantically correct as volcano-height
isn't an approved mf2 property. Nonetheless, mf2 parsers would correctly output "volcano-height":"4000m"
based on your syntax. It's then up to the consumer to decide what they want to do with the value of the property volcano-height
. If they're your volcano researcher buddy, they might use it for something. If they're a cake blogger, they might ignore it.
Whether you want to go through the 'process' to see if it'll get accepted into the core is up to you, and debating the validity of the 'process' is out of scope for this blog post.
In summary:
Example debate 4
LD: Microformats is not extensible (meaning: I can't just add my own terms and have everyone know how to use them).
MF: Microformats is extensible (meaning: parsers are vocabulary agnostic).
... LD is talking about the vocabulary (semantics). MF is replying about the syntax. I think that's why this debate goes round in circles. I hope that clarifies something for both sides.
Documentation and namespacing
This is the most interesting issue, and the reason I started this post, really.
Example debate 5
MF: .. (continuing) use your new term experimentally, and see if it catches on.
LD: How do I find out if someone else is already using something like this?
MF: Ask in IRC or check the wiki.
LD: Okay, I found someone's site using
volcano-height
but I don't know if they mean prominence or height from sea level. I can't contact them and they haven't updated the wiki. How do I find out what they mean?MF: Why do you need to?
LD: What if we use the same property but mean different things? How can anyone combine our data?
MF: Add a prefix so it's different, like
ld-volcano-height
.LD: So what if it turns out we mean the same thing, how will we show equivalence so someone combining our data knows they're the same?
MF: Why would anyone combine your data? I don't believe in volcanoes.
So, LD is used to checking out data, seeing a property they don't know, and being able to dereference its URI (ie. visit the webpage about it) and find out how it should be used, any logical constraints, maybe see labels and descriptions in different languages, or equivalence to a term from another vocabulary that maybe they already know. If LD is building something more sophisticated, their system can dereference the URI and consume a machine-readable version and automatically figure out what to do with it.
But mf2 doesn't have this expectation of documentation of experimental properties, even on the wiki, or at least, I haven't seen it happening. That's not to say it couldn't:
And also the documentation is still not machine readable. Ooh but what if there were microformats to mark up documentation of microformats?! Like:
<dl class="h-extension" id="extension">
<h2><dt class="p-name">extension</dt></h2>
<dd class="p-summary">An entry that serves as documentation for a Microformats extension.</dd>
<time class="dt-published" datetime="2015-07-01T23:12:00+01:00"><a class="u-url" href="https://rhiaro.co.uk/2015/08/extensibility-microformats#extension">1st July 2015, 23:12 BST</a></time>
</dl>
I'd support this. But.. it does seem to be a reinvention of RDF...
And this still doesn't solve the documentation discoverability problem, nor the fact that multiple people can document their properties to their heart's content, but if they call them the same thing there is no way for a third party to distinguish between them. And if you want to reuse someone else's experimental property (which you should, otherwise how will they ever catch on?) how/where do you point to the documentation of that for someone who might discover this term for the first time through your site, rather than the origin? We could come up with conventions on where to find stuff, maybe rel="vocab"
... Then what if you want to mix terms from multiple sources? I dunno, RDF namespacing seems to be handling this already.
The other thing
I can't reaaally be bothered to go into this, but there's one other problem:
Example debate 6
while(1){
MF: Linked data is too complicated.
LD: No it isn't.
}
I think what's going on here is that MF gets concerned about various academic Semantic Web baggage. But really the core tenet of linked data is... everything has a globally unique identifier - a URI.. or, fine, a URL if the 'I' is offputting. Forget everything else. But this means that properties - the relation between a thing and another thing - also have URLs. They're pretty important, worth having webpages about. To me, that's a reasonable building block.
But I'm really bored of this argument, so I don't want replies from anyone that are just retelling one side or the other, please.
Conclusion
To LD:
To MF:
Wonderful, now I've pissed of both sides of the debate, I'll go get back in my box.
In reply to:
i quit
6 cities are holding Homebrew Website Clubs this week... Edinburgh is on Thursday, Forum, 17:30 onwards.. come along to work on your personal site! https://indiewebcamp.com/events/2015-08-27-homebrew-website-club
Amy added 'Pundit - Semantic annotation tool' to Bookmarks
KitB and I just spent time calculating that with our current kitchen under optimal conditions it would take 8 years to make a million cookies.
I found vegan Fry's Peppermint Cream milkshake at Shakeaway's in Edinburgh
+ http://thesiswhisperer.com/2010/11/23/phd-paralysis/
Amy added http://thesiswhisperer.com/2010/11/23/phd-paralysis/ to https://rhiaro.co.uk/bookmarks/
+ http://thesiswhisperer.com/2012/05/08/the-valley-of-shit/
Amy added http://thesiswhisperer.com/2012/05/08/the-valley-of-shit/ to https://rhiaro.co.uk/bookmarks/
+ http://thesiswhisperer.com/2011/01/26/are-you-getting-in-the-way-of-your-phd/
Amy added http://thesiswhisperer.com/2011/01/26/are-you-getting-in-the-way-of-your-phd/ to https://rhiaro.co.uk/bookmarks/
Tried to write an SQL query and discovered I now only know SPARQL.