tantek16:51 gRegor` "interested in seeing vouching implemented. I think it will help me understand it better." indeed, implementation will help illustrate. so will a UX flow.
LoqiKevinMarks_ meant to say: I mean the part of LinkedIn where it would show the social connection between you and a person and you choose a person to vouch for you
LoqiKartikPrabhu: kylewm left you a message 15 minutes ago: and then it marked "last activity id" as that id, and didn't go back to look for mentions from before then
GWGben_thatmust_: I think I fixed the HTML problem, by the way. Still holding off on the time problem as it appears to be more complicated and I want to understand why.
KartikPrabhure: blacklists the Twitter API also allows to add/remove blocked/mutes users so a local blacklist can then be propagated to Twitter so you never get mentions from them via Twitter
tantekthere we go - /storage now links to /file-storage and individual database pages, and the indieweb examples for each have been moved to the specific pages
tantekanyone know how to just block all *.google.com 3rd party embeds? I'm getting tired of Google server slowness / bad latency slowing down page loads across the web. just want to block the entirety of all *.google.com embedding of any form
acegiakSo last night I rewrote my brainstorming engine and, thinking of the whole antipattern controversy, realised I didn't need a database for this project
jjuran, cweiske, fmarier, ShaneHudson and fabiok joined the channel
Mark87my only thought is that since what i'm developing has longevity as one of its core goals, what could be more time-safe than embedding the images?
@hackrdie indieweb-crowd lässt l. schon wieder jede mögliche lektion aus ello aus; langsam verl. ich die hoffnung (nicht ans indie, an die crowd) (twitter.com/_/status/516619823900786688)
petermolnar, PierreO1, yakker and jet_ joined the channel
TysonBrooksI've just done one post with it so far. I'd like to host a number of them. I've even thought about making an installer so when someone purchases hosting through me that they could get it auto installed onto their own accounts.
TysonBrooksBut for starters I'd like to host at least two instances one for my business site to use it for the socail media stream, a hub of communications from the two popular networks (Facebook & Twitter). Then another one for my personal uses. The personal one is the one launched right now.
TysonBrooksI seen Ben commenting to Bluehost to see if they'd work with him on doing an easy installer. Which is what got me thinking about it. If I can make it work I might contact him and show him what I've worked out.
tantekShaneHudson: benwerd posts and werd.io all the time, just pick "All content" from the "Filter content" menu at the top. E.g. a note 6 minutes ago!
danlykeMine is quickly growing beyond that, and I haven't really cleaned it up for publication, but if you're into C++ the system currently running Flutterby.net is at https://github.com/danlyke/FlutterbyNetCPP (and personal repos if you prefer to not participate in the Github silo)
tantekerlehmann: re: so why not use that for all content, is there some drawback? [to Atom] - answer: yes, it's easier to write posts in HTML than Atom. Plus then you're done with having something browser viewable/editable.
LoqiA feed reader is an application (local or on the web, like the defunkt Google Reader) that subscribes to feeds (typically legacy Atom & RSS) and presents them in an interface for reading http://indiewebcamp.com/feed_reader
erlehmanntantek do you know of blog software with MIME storage backends? after all, everyone holds on to their emails and can edit them from every device
ben_thatmustbemeI'm thinking I will investigate just having posts rendered out to a storage folder on updates. Not sure I want to go fully flat file for storage, but rendering the data thats nice to keep around is probably a good idea
ben_thatmustbemethen i start having to manage my own indexes and such, which gets rather messy. Plus indexes aren't something i care about storing for the future. its only content. So just redering out bodies of posts, etc, is really all I care about
ben_thatmustbemeerlehmann, yes, if I want to grab only articles, if I don't want to loop through all files on disk, i need some list of entries by type
ben_thatmustbemeright now I store everything in the DB, but since queries are much slower than disk access, I have timestamped caches of search results in files on disk. As long as I make sure that everything that could possibly effect those cached queries is set to update the cache, I could drop the requirement that queries have a finite cache time. and just keep then indefinitely.
ben_thatmustbemeright now i'm trying to get the MP client developed enough where I can completely throw away the admin interface. I basically have abandoned it already
ben_thatmustbemethere may be a few things that will not be done with MP, like editing rel=me links and such, those may need a minor interface, and I'm hesitant to have those accessed by indieauth
tantekkylewm: no problem. we should document the current state of the community, whatever that is, in addition to past experiences and future aspirations.
tantekso yes, document how your project does its Datastore / Storage format (take your pick) and add any additional opinions there that informed your design
mkoSo... on the database-antipattern, most of those arguments don't apply to MongoDB since MongoDB is actually storing everything as .bson files on the file system. It is technically a "flat file representation" of the files. My entire MongoDB dump looks like nothing but JSON representations of h-entry almost identical to that which pin13.net spits out (but currently without all the arrays for things that I know are only going to ever be a
gRegor`I think Facebook changed something regarding the image preview when you put a URL in your status. Instead of my logo, it just picked up the avatar of one of the comments first.
danlykeKevinMarks, interesting article, especially since I just got to the "WordPress Plugins" section, and how they block WordPress clients because of botnets using Pingbacks for "sustained attacks", and thought about WebMention.
mkoKartikPrabhu: No argument there. It counts as db-tax, but I would argue that the file-storage pattern has just as many (if not more) "taxes" for long-term usability. Assuming you improve the display or methods of access of your content over time, it's very possible you would need to go back and reformat all of your files to support these new displays or methods of access.
LoqiThe database antipattern is the use of a database for primary long-term storage of posts and other personal content (like on an indieweb site), and is an anti-pattern due to the additional maintenance costs, uninspectability, platform-dependence, and long-term fragility of databases and their storage files http://indiewebcamp.com/DBA_tax
danlyketantek, don't have any good name, internally it's "fby", in the svn repo it's FlutterbyNetCPP, if I'm going to distribute it I really need to package it differently from "git commit -a; git push github master".
ben_thatmustbemeSo those that sore in files, how do you store comments? as a separate file for each, one comments file per post, or at the end of the file they are commenting on?
tanteksame with Google's rich snippets validators, have to wait to be blessed, and even then you have no idea what markup they'll actually bother to do anything with.
tantek.comedited /database-antipattern (+30) "sort projects, keep only those live on actual indie web community member sites, note multiple and put those first in lists" (view diff)
tantek.comedited /database-antipattern (+0) "bumping plain HTML files (multiple) to top of list as at least 2+ independents currently doing that, and some have in the past." (view diff)
mkoHonestly, I think /database-antipattern is one of the most caustic disagreements in the IndieWeb. If I get some time, I'll try to further articulate why I feel that way, but the short answer is that it's an argument about plumbing that tries to shame people who disagree.
crjust as an example, POSIX only has local usernames, if you want to allow the web at-large to have UNIX-style permissions to read/write on your website, you have to build your own access-control layer
tantekinteresting use of subdomains for that stuff which is all from the same individual - I don't think we have anyone else here doing that - typically people use paths for that
tantekKevinMarks: interesting. as I'd think from wanting to keep permalinks working, that fewer URL patterns (where stuff is posted) would be less work to maintain longer term.
snarfedthe biggest new part i learned was the distinction between personal indie websites and larger apps/systems. i originally interpreted it as an argument as an antipattern for both, but it's clearer now that it's primarily an antipattern for the former, which i agree much more with
kylewmjonnybarnes: thanks! as of this weekend, they’re stored in the SQLite database along with everything else. there is a Contact table and a Nick table
ben_thatmustbemei thought it was going to be saying "What's the Use Case?" to stop people in their tracks and force them to think things through again.
gRegor`davidmead: It's certainly possible, though I don't know if anyone has made a micropub plugin for WP yet. I think GWG and acegiak have talked about it.
LoqiA reply thread (AKA reply chain) is a threaded list of replies, and replies to those replies, displayed under the original post, sometimes as part of a reply-context http://indiewebcamp.com/context-thread
danlyke`digging through microformats docs and finding no love: Putting aside my loathing for WebMention right now, if I wanted to RSVP to the October 22nd Homebrew Website Club via either my RSS feed or my status update microformats feed, how would I do that?
gRegor`Re: Feedburner "But most people were actually using it as an online penis enlargement tool, displaying the subscriber counter button on their Web site." haha
gRegor`Whoa. "I was surprised to notice Feedburner was throwing a 400 Bad Request error. Despite Google guidelines promoting the use of HTTPS, Feedburner, a Google service is unable to handle it."
danlyke`tantek, my concern with WebMentions is as much that if we collectively generate an additional installed huge base of DDOS platforms (along-side Pingback), we're not doing any good. But I'll ping 'em for now. Sigh.
tantekdanlyke, as you know I agree with your concerns. Let's still play with webmention while it's small and we can figure out UX issues before the spamhordes arrive
tantekdanlyke, I have been putting some time into thinking/designing about the webmention (expected) spam problem BTW - I'd be very interested in your thoughts on the proposed "vouch" protocol extension to webmention: http://indiewebcamp.com/irc/2014-09-28#t1411927207068
danlyke`tantek, so the notion is that I, B, have a record of C linking to A and thus don't have to retrieve C's record? Else we have a current Pingback amplification potential.
danlyke`yeah, the spam one isn't nearly as interesting to me, that's something we have many potential filtering mechanisms for. No solutions, but email is still usable and we don't have a solution to that either.
reedstrmThe general cross-social-domains organizational problem still defaults to lowest common denominator communication: email. Just attended my kid's orchestra Parent's organization group. Everythings done via email. And I'm glad: it could be a 'join our Facebook Group' instead ...
danlyke`I'm with rascul. I'm also a square dancer, and recently saw some heavy Facebook adopters in that space discover that they were losing most of their target audience when they moved to Facebook groups and Facebook-only promotion (Was actually somewhat surprised by how much they lost).
npdotytantek, I think "block" and "mute" are most important for the reader side of things, rather than the publishing side. though for inline publishing/linking to comments/responses, you'd want "block" to remove responses from your own site
daftantek: on the other hand, email spam filtering went in the other direction, from overcomplicated spamassassin type stuff to simple word frequency analysis
danlyke`tantek, aside from the amplification attack: When we say "B vouched for A", do we mean that B has vouched for a URL that matches A's URL up to the last slash in the URL B vouched for?
npdotytantek, indieweb has the limitation that Block can't prevent an abusive user from responding to what you post, only to limiting where those replies are linked/syndicated/re-published
npdotytantek, yeah, I'm not actually saying it's a problem, I agree that this is exactly how the Web should work. but it's a reason that Web approaches to abuse are likely to focus on the mute side of things
tanteknpdoty - two examples. on Flickr, blocking someone deletes all comments they made on any of your stuff. On Twitter, blocking someone does not delete *anything*, nor does it stop their @-replies from showing up on your tweets when *others* view your tweets.
danlyke`tantek Ugh. Got my Bs and Cs mixed: "A sends along a third parameter, let's say "voucher=" ... that includes a URL to C", this means that A has to know that B trusts C.
npdotytantek, right, so for Flickr-like block functionality, an indieweb publisher can delete links to comments written by the blocked user so that they don't appear on your own site, but only readers can handle the functionality of hiding those comments for others
npdoty... and I'm not sure if we want to call that publisher feature (don't link to/syndicate interactions from user X, Y or Z) "block" or rather "mute"
danlyke`tantek, ah, okay, so A knows C has linked to A, scans B for links to a C which A knows has lined to A, and then notifies B with that C as a voucher.
tantekcorrect. and yes it is by design that this additional "work" is placed on the *sender* of the webmention. in "good actor" cases it is expected to be trivial, and in "bad actor" (spammer, abuser) cases it is expected to be non-trivial. it is designed to be *hard* or *difficult* in the abstract
danlyke`So A's knowledge of C actually has to be pretty comprehensive, and if we have sites knowing that much about other sites in their ring of trust, we can almost suspect that B doesn't have to poll C again to tell that C has linked to B.
tantekA's knowledge of C does not have to be comprehensive at all - it's expect that if you are in each others second degree then it is trivial to find such a link
tantekto make this easier, sites software could cache (e.g. in database cache ;) ) *just* the one-degree in-bound webmention links and outbound links from content.
danlyke`tantek, yeah, that's kind of what I'm thinking: I'm already scanning RSS feeds from my OPML (and from /irc-people), will probably add Microformats shortly. If I track which of those entries link elsewhere, then when A says "C vouches for me at entry [URL]", I can make a "yes" or "no" determination from my local knowledge of links.
danlyke`tantek yeah, my robustness is mostly just about potential race condition between "haven't checked C recently, A sends mention, I may need to store that until my next C check to verify".
gRegor`tantek: So when I receive a webmention + voucher, my verification process is to confirm I have linked to that voucher URL before and ... what else? Or is that it?
danlyke`gRegor: That you have linked to the *domain* of the voucher URL, and that the entry that the voucher URL links to has a link to the domain of the WebMention requestor.
danlyke`ie: A finds a link on B/123 to C/456, and knows that C/789 links to A/012. So A mentions B/345 on A/678, and sends B a WebMention to B/345 with [A/678, C/789].
tantekdanlyke - then B verifies (by whatever internal mechanism it wants) that it has linked to C (blogroll, whitelist, Twitter followings, nicknames cache, outbound link cache)
danlyke`tantek, true, but my blog has 20k entries, and I don't right now have any index of outbound links to index ID. If the WebMention request can tell me which of those 20k entries links out to the voucher, that'd help.
tantekdanlyke - however the initial webmention won't either, so you need some mechanism like that in the first place to even start the process of rejection
danlyke`(I mean, in practice I should index those outbound links anyway because I need to be tracking which of those are now spam farms, and which are 404, etc)
danlyke`tantek, or put them in a queue util I can authenticate them somehow, and only to the request back to A when I actually have a notion of A's legitimacy.
kylewmnpdoty: even if you tried to pare down which wm's you actually send, someone else could come along and send them "on your behalf". the onus is on the webmention receiver to decide what's annoying/spurious.
gRegor`GWG: I really liked the idea of a more magazine-like format with a single article on a single page. It lends itself well to minimalism, too, which I really wanted.
gRegor`GWG: I also questioned how valubable a stream of the most recent X blog posts was, given the heavier use of feed readers and short attention spans.
gRegor`feed readers were never that mainstream, true, but a lot of my readers used them at the time (most of my friends were on Google Reader and we loved it)
gRegor`What are the advantages of using WordPress JSON RPC (or whatever) over a plugin that just uses the core WordPress functions like wp_insert_post?