IETF
http451
http451@jabber.ietf.org
Saturday, July 15, 2017< ^ >
Room Configuration
Room Occupants

GMT+0
[04:15:19] logan joins the room
[04:15:27] <logan> Hello
[04:42:12] codarren@hackers.mu joins the room
[04:43:33] logan leaves the room
[04:43:51] logan@hackers.mu joins the room
[07:13:43] nllz joins the room
[07:13:51] <nllz> hello!
[07:13:59] <logan@hackers.mu> nllz: hey there
[07:14:09] <nllz> we're just starting up here
[07:14:33] <nllz> great you're here!
[07:14:37] <nllz> thanks for the awesome work!
[07:14:43] <codarren@hackers.mu> Hello !
[07:14:57] <nllz> You too! :)
[07:15:10] <logan@hackers.mu> thank you
[07:15:25] <codarren@hackers.mu> Thanks
[07:17:53] dkg joins the room
[07:17:59] <dkg> ahoy ahoy
[07:18:11] <logan@hackers.mu> dkg: hey there. it's been a while
[07:18:18] <dkg> nice to see you, logan
[07:18:34] <logan@hackers.mu> dkg: i'm remote :-)
[07:21:10] <dkg> i'm seeing you by XMPP :)
[07:35:09] <dkg> they're spinning up the hackathon intro speech right now
[07:36:07] <nllz> we've just did a quick round of introductions
[07:36:40] <dkg> if you want to follow along, apparently meetecho is here: http://www.meetecho.com/ietf99/hackathon
[07:36:48] <logan@hackers.mu> thanks !
[07:40:21] JoeHallCDT joins the room
[07:40:47] <nllz> You got your github usernames for me so I can add you to the repo?
[07:40:56] <logan@hackers.mu> yes, please
[07:41:07] <logan@hackers.mu> JoeHallCDT: hello !
[07:41:16] <JoeHallCDT> hello!
[07:43:00] <dkg> logan@hackers.mu: what is your github username?
[07:43:15] <dkg> codarren@hackers.mu: and yours?
[07:43:35] <logan@hackers.mu> loganaden
[07:44:05] runnegar@jabber.isoc.org joins the room
[07:44:48] <dkg> logan@hackers.mu: i just sent you an invite
[07:46:44] <logan@hackers.mu> dkg: thanks
[07:46:59] <JoeHallCDT> for the remotes: we are listening to the hackathon coordinator talk about the agenda for the hackathon, etc.
[07:47:09] <JoeHallCDT> (which you may see via meetecho)
[07:49:23] <dkg> when that finishes, we're going to start with a planning round.
[07:49:42] <dkg> codarren@hackers.mu: i see that nllz has already added you :)
[07:50:10] <JoeHallCDT> awesome. to tee up: I’m wondering if there is a good thing that more nontechnical folks can work on... I’m happy to start a repo for an implementation report using the mt-markdown template, which should be easy to modify.
[07:50:27] <dkg> JoeHallCDT: that would be great
[07:50:48] <dkg> do you have permission to add a repo to 451hackathon org on github?
[07:51:04] <JoeHallCDT> I don’t think so
[07:51:18] <dkg> can you try?  i think i gave all members ability to create permissions
[07:51:25] <JoeHallCDT> cool, will do
[07:52:51] dkg leaves the room: leaving
[07:52:54] dkg joins the room
[07:54:28] <nllz> The ppl who want to work on qualitative analysis good have a look here: https://www.censys.io/ipv4?q=80.http.get.status_code%3A+451&page=2
[07:54:36] <JoeHallCDT> dkg: it worked!
[07:54:39] <JoeHallCDT> ty
[07:54:40] <dkg> JoeHallCDT: yay :)
[07:54:40] <nllz> aside from what comes out of the crawler ofc
[07:56:21] <dkg> ok, intro speeches are over
[07:57:46] <logan@hackers.mu> nllz: thanks
[07:59:31] dantheta joins the room
[08:01:45] <nllz> dkg is giving introductions
[08:01:56] <nllz> we will be using git for collaboration
[08:02:34] <nllz> would be great if ppl could push code to the main repo
[08:02:53] <logan@hackers.mu> yes, we will
[08:03:05] <JoeHallCDT> and make sure that there is a open source license in each repo
[08:03:41] Ondřej Surý joins the room
[08:03:42] Ondřej Surý leaves the room
[08:06:11] runnegar@jabber.isoc.org leaves the room
[08:06:26] <JoeHallCDT> currently making sure that folks all have XMPP accounts to join us here
[08:06:43] <JoeHallCDT> initial template repo for the 451-imp-report:
[08:06:43] <JoeHallCDT> https://github.com/451hackathon/451-imp-report
[08:07:03] runnegar@jabber.isoc.org joins the room
[08:08:06] runnegar@jabber.isoc.org leaves the room
[08:08:38] sunil joins the room
[08:08:49] runnegar@jabber.isoc.org joins the room
[08:09:09] runnegar@jabber.isoc.org leaves the room
[08:09:43] runnegar@jabber.isoc.org joins the room
[08:10:25] <dantheta> Hiya - I'm going to fork https://github.com/hackersdotmu/legal_crawler into the 451 github organization, if that sounds ok?
[08:10:45] <JoeHallCDT> sounds good!
[08:11:54] <dantheta> Done.  I'm going to commit a few repo cleanups to start with (removing ~ files, adding .gitignore)
[08:12:59] <dkg> dantheta: thanks!
[08:13:44] <JoeHallCDT> folks, here is the RFC for HTTP Status Code 451:
[08:13:44] <JoeHallCDT> https://tools.ietf.org/html/rfc7725
[08:14:03] Ondřej Surý joins the room
[08:14:12] Ondřej Surý leaves the room
[08:14:12] <JoeHallCDT> those that will be working on implementation report will want to read that and a bit of the format for implementaiton reports:
[08:14:12] <JoeHallCDT> https://tools.ietf.org/html/rfc5657
[08:14:18] Ondřej Surý joins the room
[08:14:19] <logan@hackers.mu> dantheta: all good
[08:14:20] Ondřej Surý leaves the room
[08:14:35] maite90 joins the room
[08:15:06] Ondřej Surý joins the room
[08:15:11] Ondřej Surý leaves the room
[08:16:37] tarakiyee joins the room
[08:16:50] <tarakiyee> I’m in!
[08:17:09] olgacrystal joins the room
[08:19:00] oerdnj joins the room
[08:20:01] <dantheta> I've pushed the cleanups.  Do we want to add a license to the legal_crawler repo?  There's quite a few votes for MIT, but I'm also partial to GPL.
[08:20:31] <olgacrystal> Hey all! My username is olgacrystal
[08:20:37] <nllz> thanks! adding you
[08:20:48] alp joins the room
[08:20:53] <logan@hackers.mu> dantheta: i'm using a license
[08:21:01] <logan@hackers.mu> dantheta: https://github.com/451hackathon/legal_crawler/blob/master/censorship_crawler/censorship_crawler/spiders/451_spider.py
[08:21:40] <logan@hackers.mu> dantheta: are you ok with it ?
[08:22:02] <dkg> logan@hackers.mu: that looks fine -- we had no complaints about using standard free licenses around the table in person here.
[08:22:05] <dantheta> Yep, sure - sorry, didn't see it there.  I'll add it at the toplevel of the repo
[08:22:13] <oerdnj> My github name is oerdnj
[08:23:53] <tarakiyee> I’ve only ever used WTFPL
[08:24:20] <alp> Hi! o/ The block-crawler tool is forked to the hackathon repo now: https://github.com/451hackathon/block-crawler
[08:24:34] <JoeHallCDT> woo!
[08:25:19] <logan@hackers.mu> dantheta: what is your next step ? Adding code to parse json files ?
[08:25:23] <alp> Mild preference for non-viral licensing for code. no problem with GPL/CC/documentation licenses for specs
[08:26:22] <nllz> maybe we can get a discussion going between Alp, Dan and Logan on where to go with the crawlers
[08:26:29] <alp> Before we split out, let's hash out a trivial json spec for reporting detected 451 observations
[08:26:36] <logan@hackers.mu> alp: +1
[08:27:44] <JoeHallCDT> we’re discussing a minimal JSON formal
[08:28:11] <JoeHallCDT> four things: date, url, status, something about where it was seen from (not IP, maybe ASN?), and a host GUID
[08:28:26] JoeHallCDT is trying to summarize alp and dan discussing this
[08:29:59] tarakiyee leaves the room
[08:33:01] <logan@hackers.mu> status is the http status code ? e.g 451, 404.
[08:34:46] mpc81_dd17 joins the room
[08:35:28] JoeHallCDT leaves the room: Replaced by new connection
[08:35:54] <dantheta> Firebase has a free tier: https://firebase.google.com/pricing/
[08:35:58] oerdnj leaves the room
[08:36:15] JoeHallCDT joins the room
[08:36:24] <JoeHallCDT> we’re identifying who wants to work on crawlers, browser plugin, and CMS plugin
[08:37:33] oerdnj joins the room
[08:37:37] <logan@hackers.mu> JoeHallCDT: i'm ok with the crawler.
[08:39:36] <codarren@hackers.mu> I am working on the browser plugin
[08:40:14] <dkg> codarren@hackers.mu: cool, i'd like to help with that too if possible.
[08:41:01] <codarren@hackers.mu> dkg https://github.com/451hackathon/browserplugin/tree/master/451_check_extension
[08:41:45] <codarren@hackers.mu> @dkg: what's our next step?
[08:41:51] <oerdnj> I have just disabled "antispam" feature of this jabber account. Can you see my message?
[08:41:58] <JoeHallCDT> yes
[08:42:02] oerdnj leaves the room
[08:42:04] oerdnj joins the room
[08:42:21] <oerdnj> After logout/login I can even see the history. Yay!
[08:43:26] <JoeHallCDT> dkg is summarizing a few concerns that apply globally to this project: 1) unfortunately, we’re making it easier to censor things, to some extent, so it’s nice to make sure we think about things that may work against that (e.g., a CMS plugin that reports censored pages may be able to submit a list of all censored content on that domain, to sort of discourage mass censoring), and 2) people that are reporting censored resources are likely to have sensitive circumstances and we don’t want to create honeypots for law enfrocement.
[08:49:31] <dkg> ok, a pad for linkdumps: https://pad.riseup.net/p/ietf99-http451
[08:52:26] tarakiyee joins the room
[08:54:58] <dkg> codarren@hackers.mu: i'm going to start by getting the thing installed locally, and then i think we should look into the json format that the crawlers want for submission
[08:55:06] <dkg> i think alp has a suggestion about how that would work.
[08:55:18] <dkg> and we should try to review and edit that :)
[08:59:52] alp leaves the room
[09:01:50] <oerdnj> Do we have any URL we know that are blocked with 451 for testing?
[09:02:09] <dkg> oerdnj: see the https://pad.riseup.net/p/ietf99-http451
[09:02:12] <dkg> there's a link on there
[09:04:35] dkg has set the subject to: HTTP 451 -- exposing censorship -- https://pad.riseup.net/p/ietf99-http451 -- https://github.com/451hackathon
[09:06:37] ulrike joins the room
[09:07:56] <JoeHallCDT> niels: figure out what the page for this was before?
[09:07:56] <JoeHallCDT> https://www.censys.io/ipv4/174.24.39.133
[09:16:22] <tarakiyee> hey folks, just to update you, we’re implementing the CMS plugin
[09:17:30] <logan@hackers.mu> tarakiyee: which CMS are you using ? wp ?
[09:17:30] <JoeHallCDT> @taraklyee: keep track of questions you might have for the rest of the group? E.g., if you think you need certain fields for a user to publish a 451 status page and report to a central repository
[09:18:08] <tarakiyee> wordpress
[09:18:28] <tarakiyee> will do joseph
[09:19:04] <nllz> @JoeHallCDT: seems like 174.24.39.133 is an old domain of Qwest, which was acquired by CenturyLink
[09:19:13] <tarakiyee> just FYI, it’s going to be geoblocking based, it allows an admin to indicate a website is blocked in a certain country and serve 451
[09:20:13] <JoeHallCDT> test
[09:20:20] <tarakiyee> We’re also adding a blocking-authority field to indicate who ordered the blocking (since understanding blocking-by)
[09:20:29] tarakiyee leaves the room
[09:20:35] tarakiyee joins the room
[09:21:01] <runnegar@jabber.isoc.org> niels, http://www.worldlii.org/
[09:21:05] <dkg> you still here, tara?
[09:21:28] <dantheta> I'll add json logging to the python crawler
[09:24:04] <JoeHallCDT> @nto I added a very initial cut at a research report outline to the pad. take a look?
[09:24:11] tarakiyee leaves the room
[09:25:55] alp joins the room
[09:26:13] <dkg> codarren@hackers.mu: so i've gotten the extension installed into a dedicated account, but it's not showing me the promised banner when i visit https://github.com/SonyPS3/scedev
[09:26:45] <dkg> codarren@hackers.mu: but the icon does change from black to red on the relevant page.
[09:27:38] <alp> dantheta dkg json format prototyping hackpad: https://pad.riseup.net/p/ietf99-http451-tools
[09:30:55] dkg has set the subject to: HTTP 451 -- exposing censorship -- https://pad.riseup.net/p/ietf99-http451 -- https://github.com/451hackathon -- https://pad.riseup.net/p/ietf99-http451-tools
[09:31:22] <dkg> alp: thanks!  Feel free to add coordinating documents like that to https://github.com/451hackathon/451hackathon too
[09:31:30] <codarren@hackers.mu> @dkg: the extension changes color to red on detecting status code 451
[09:32:07] <codarren@hackers.mu> @dkg: Do you think a popup would be good?
[09:32:43] <dkg> codarren@hackers.mu: i was just reading the README
[09:32:50] <dkg> which claims that there should be a banner
[09:32:56] <dkg> so maybe the bug is in the readme :)
[09:35:04] <codarren@hackers.mu> @dkg: there are 2 plugins
[09:35:18] <codarren@hackers.mu> @dkg: it's the other guy's plugin
[09:35:35] <dkg> where are the plugins?
[09:35:47] <dkg> i'm using https://github.com/451hackathon/browserplugin
[09:35:58] <dkg> which has a README that says:  Expected behaviour is that the extension icon will display `451` in a small red banner for 3 seconds.
[09:36:13] <codarren@hackers.mu> this one I made:
https://github.com/451hackathon/browserplugin/tree/master/451_check_extension
[09:36:45] <dkg> oh, confusing -- there are two extensions in a single repository
[09:37:03] <codarren@hackers.mu> we should create another repo
[09:37:08] <codarren@hackers.mu> I'm working on it
[09:39:17] <dkg> naming it something better than "browserextension" would be good too :)
[09:39:50] tarakiyee joins the room
[09:40:05] tarakiyee leaves the room: Disconnected: Replaced by new connection
[09:40:06] tarakiyee joins the room
[09:41:12] <codarren@hackers.mu> @dkg: wish granted- https://github.com/451hackathon/http_451_extension
[09:41:22] <codarren@hackers.mu> removing the old repository
[09:47:50] <dkg> codarren@hackers.mu: let's not remove the old one -- we can deprecate it though :)
[09:51:45] <dkg> i agree we should move forward with just one extension
[09:53:57] JoeHallCDT leaves the room
[09:53:59] <dkg> codarren@hackers.mu: i'm going to do some code cleanup/formatting to make it a bit easier to follow.
[09:54:02] JoeHallCDT joins the room
[09:58:15] <codarren@hackers.mu> @dkg sounds good
[09:59:29] <nllz> Interesting case: 194.30.227.164 <https://www.censys.io/ipv4/194.30.227.164> is this actually served on the server, or is it blocked upstream?
[10:00:10] <nllz> The notice seems OK: eeepnotice.hol.gr but I would like to understand whether this is a re-direct or filtering
[10:01:33] <dkg> codarren@hackers.mu: i'm trying to understand the code for http_451_extension
[10:01:45] <nllz> This seems to be one done at endpoint: http://195.23.113.202/
[10:02:01] <dkg> it looks to me like it's making a second request for each visited webpage
[10:02:31] <dkg> and it also might not have noticed that a given subresource is being blocked.
[10:02:36] <mpc81_dd17>                                                             
[10:02:40] <dkg> am i understanding that correctly?
[10:03:10] <dkg> mpc81_dd17: i think you just sent a blank message -- maybe try again?
[10:04:48] <mpc81_dd17> it was a mistake
[10:08:33] runnegar@jabber.isoc.org leaves the room
[10:09:37] <alp> nllz: http://html5doctor.com/the-main-element/ <- there's a main element (https://developer.mozilla.org/en/docs/Web/HTML/Element/main), not sure how widely it's adopted but it could help with semantics of how to define CMS body
[10:09:55] <dkg> codarren@hackers.mu: did you see the way that Shivan Kaul is hooking into existing web requests, rather than issuing new ones?
[10:12:20] <nllz> Was checking whether some IANA link relations might be interesting/relevant https://www.iana.org/assignments/link-relations/link-relations.xhtml
[10:15:23] <codarren@hackers.mu> @dkg: yeah I saw
[10:18:58] <codarren@hackers.mu> @dkg: Agree this would be less taxing
[10:19:50] runnegar@jabber.isoc.org joins the room
[10:27:24] <nllz> If we serve 451 for a subresource, where does the explanation text go?
[10:30:35] JoeHallCDT leaves the room: Replaced by new connection
[10:30:36] JoeHallCDT joins the room
[10:35:02] tarakiyee leaves the room
[10:36:54] <oerdnj> Ok, so I have investigated the possibility of using RIPE Atlas for testing the HTTP 451 from different probes in different jurisdictions. It can be done, but the default setting for HTTP tests is to allow testing only the RIPE Anchors.
If you need to test something else you need to ask for an explicit permission from the RIPE Atlas team, and I have done that. I'll report back when I hear from them.
I am going to join the DNS team for a rest of the afternoon.
[10:39:00] runnegar@jabber.isoc.org leaves the room
[10:41:23] <JoeHallCDT> olga and others, I’ve been looking at the Lumen database and the government requests I can find seem to be mostly Russian:
[10:41:24] <JoeHallCDT> https://www.lumendatabase.org/topics/33
[10:41:30] alp leaves the room: Disconnected: closed
[10:41:34] alp joins the room
[10:41:47] <nllz> let's huddle / report back in 10 minutes
[10:43:41] <dantheta> logan: I was looking at the scapy response object, and it looks like the status message text isn't available.  Do you know if it is possible to find it somewhere?
[10:43:54] <dantheta> s/scapy/scrapy/ - I get that wrong all the time
[10:46:04] runnegar@jabber.isoc.org joins the room
[10:48:22] <nllz> @Joe - specifically for 451 in the lumen database?
[10:49:12] <nllz> @Joe - Or is this a more general statement about what you found there?
[10:49:35] <alp> oerdnj: good work
[10:51:33] runnegar@jabber.isoc.org leaves the room
[10:51:52] <nllz> LET'S HUDDLE :)
[10:53:59] runnegar@jabber.isoc.org joins the room
[10:54:58] <alp> dantheta: for now exclude the field from json. it's worth saying explicitly in the spec, that nearly all fields are optional
[11:10:42] ulrike leaves the room
[11:11:20] whoward joins the room
[11:13:15] oerdnj leaves the room: Stream closed by us: Replaced by new connection (conflict)
[11:17:34] olgacrystal leaves the room: Disconnected: closed
[11:19:00] <nllz> https://www.ietf.org/iesg/implementation-report.html
[11:19:53] u joins the room
[11:21:57] <whoward> I'm on the "451hackathon" repo, but I'm not sure how to access the implementations/crawlers.
[11:24:04] <JoeHallCDT> will, you’d have to clone the repo in question
[11:24:24] tarakiyee joins the room
[11:24:26] <whoward> Ah, got it.
[11:29:52] <whoward> I think I cloned wrong. All that's in the 451hackathon folder is a license and a readme.
[11:31:32] <whoward> Okay, I think I got it now.
[11:32:19] <dantheta> Sorry, it's the legal_crawler repo, in the 451hackathon organization
[11:32:27] <whoward> Got it.
[11:35:28] whoward leaves the room
[11:39:23] whoward joins the room
[11:41:36] <whoward> I don't see an "issues" tab on the legal_crawler repo. Is the implementation finished, or is the task list elsewhere?
[11:42:01] <JoeHallCDT> huh, that is weird!
[11:42:18] <nllz> task list is in root of the repo
[11:42:42] <JoeHallCDT> ah, so: https://github.com/hackersdotmu/legal_crawler ?
[11:43:27] <whoward> no issues there either, but at least there's a tab.
[11:44:19] runnegar@jabber.isoc.org leaves the room
[11:45:36] <nllz> https://github.com/451hackathon/451hackathon/issues
[11:46:35] <whoward> I see "create crawler," but is there further to do within the crawler?
[11:47:05] <JoeHallCDT> dantheta@jwchat.org <mailto:dantheta@jwchat.org>?
[11:55:29] tarakiyee leaves the room
[12:04:51] tarakiyee joins the room
[12:05:47] olgacrystal joins the room
[12:08:00] dantheta leaves the room: Disconnected: closed
[12:08:01] dantheta joins the room
[12:08:53] <dkg> ok, i've set up several pages with primary, subresources, or nested subresources blocked, and linked to them in the pad.
[12:09:12] <dkg> i also note that https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/451 has a different definition of "blocked-by" than the RFC :/
[12:09:31] <JoeHallCDT> woo! thank you dkg!
[12:09:48] runnegar@jabber.isoc.org joins the room
[12:17:06] <dkg> i just fixed the "blocked-by" description in MDN to make it match the RFC
[12:17:28] <dantheta> logan: just committed a patch that allows running the crawler against a specific URL from the commandline.
[12:18:22] <dantheta> logan & alp: what feature to implement next?
[12:21:26] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:21:27] tarakiyee joins the room
[12:24:27] <logan@hackers.mu> dantheta: back
[12:25:05] <logan@hackers.mu> dantheta: were you able to figure out for the middleware ?
[12:25:17] <logan@hackers.mu> dantheta: some of the documentation is a bit confusing.
[12:25:48] <logan@hackers.mu> dantheta: i'm syncing from your repo. let me test it
[12:26:08] u leaves the room
[12:27:19] u joins the room
[12:36:00] <dantheta> Yep, took me a little while!  I've added a readme, and a couple of cmdline parameters
[12:36:15] <dantheta> I'm adding an issue to get constrained recursion added to the python crawler
[12:36:50] <dantheta> following a similar approach to alps' node crawler
[12:38:01] <dantheta> also, do you know if scrapy provides loop prevention in its recursion support, or is that left to spiders to implement?
[12:40:45] <dantheta> Added: https://github.com/451hackathon/legal_crawler/issues/1
[12:44:08] <whoward> Is there anything else that needs doing?
[12:44:46] <whoward> for the python crawler, I mean.
[12:48:04] <whoward> It seems that items.py and pipelines.py are unfinished, but I'm unsure.
[12:48:51] <logan@hackers.mu> dantheta: it appears that we need to look at restrict_xpaths
[12:51:33] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:51:34] tarakiyee joins the room
[12:52:11] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:52:12] tarakiyee joins the room
[12:52:35] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:52:35] tarakiyee joins the room
[12:54:02] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:54:03] tarakiyee joins the room
[12:57:01] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:57:04] tarakiyee joins the room
[12:57:28] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:57:29] tarakiyee joins the room
[12:57:32] <logan@hackers.mu> whoward: yeah, you can try to do look into that
[12:57:41] runnegar@jabber.isoc.org leaves the room: Replaced by new connection
[12:57:51] tarakiyee leaves the room: Disconnected: Replaced by new connection
[12:57:52] tarakiyee joins the room
[12:58:04] runnegar@jabber.isoc.org joins the room
[12:58:32] tarakiyee leaves the room
[12:58:43] <whoward> From the documentation: restrict_xpaths (str or list <https://doc.scrapy.org/en/latest/topics/api.html#scrapy.loader.SpiderLoader.list>) – is an XPath (or list of XPath’s) which defines regions inside the response where links should be extracted from. If given, only the text selected by those XPath will be scanned for links. See examples below.
[12:59:04] tarakiyee joins the room
[12:59:11] <whoward> It then doesn't show examples below...
[13:01:33] mpc81_dd17 leaves the room: Disconnected: closed
[13:07:33] cvigano joins the room
[13:08:14] cvigano leaves the room
[13:08:50] http451 joins the room
[13:11:40] JoeHallCDT leaves the room: Replaced by new connection
[13:11:41] JoeHallCDT joins the room
[13:16:05] tarakiyee leaves the room
[13:19:38] <whoward> Still seeking something concrete to do...
[13:21:19] alp leaves the room: Disconnected: closed
[13:21:28] alp joins the room
[13:22:50] whoward leaves the room
[13:25:49] whoward joins the room
[13:30:27] tarakiyee joins the room
[13:36:06] maskys joins the room
[13:36:36] <maskys> Hi :)
[13:37:32] <logan@hackers.mu> maskys: hello Kiffa
[13:38:10] <logan@hackers.mu> guys, this is maskys, he is 16 years old, and also from Mauritius. he wants to see how an IETF hackathon works.
[13:39:15] <nllz> Hi Maskys!
[13:39:18] <nllz> Welcome
[13:39:18] <dantheta> Hi Maskys!
[13:40:12] <maskys> Hello everyone. I'm not experienced enough to contribute to the community, but I'm here to learn how it works.
[13:42:56] <JoeHallCDT> https://pad.riseup.net/p/ietf99-http451
[13:43:14] <logan@hackers.mu> maskys: go through what JoeHallCDT has just pasted
[13:43:41] <logan@hackers.mu> maskys: also read this: https://tools.ietf.org/html/rfc7725
[13:44:45] <dantheta> logan: do you want to take https://github.com/451hackathon/legal_crawler/issues/1, or shall I?
[13:45:01] <logan@hackers.mu> dantheta: you can take it. i'm fixing another issue
[13:46:29] <dantheta> OK - which one are you looking at?
[13:47:30] <dantheta> I think since we're in separate locations, we should probably claim issues to prevent clashes later
[13:47:52] <logan@hackers.mu> dantheta: well, debug is showing me what appears status code "200" for github 451 urls
[13:48:16] <logan@hackers.mu> dantheta: github is not crawler friendly
[13:48:22] <logan@hackers.mu> dantheta: sure
[13:49:37] <dantheta> logan: cool, do you want to add a github issue for that?
[13:49:44] <logan@hackers.mu> yes, i will.
[13:56:29] <nllz> example of redirect with 451: $ traceroute 194.30.227.164
[13:56:48] <JoeHallCDT> test
[13:57:19] <JoeHallCDT> damn it
[13:57:56] JoeHallCDT leaves the room: Replaced by new connection
[13:57:58] JoeHallCDT joins the room
[13:59:18] <maskys> logan: JoeHallCDT: Thanks, will do.
[13:59:33] <JoeHallCDT> nto, are their flags you have to set to see a 451 via traceroute? or is it that it just dies at the gr gambling auth?
[14:00:12] <JoeHallCDT> Great to have you Maskys!
[14:00:47] maskys leaves the room: Stream reset by peer
[14:03:34] JoeHallCDT leaves the room: Replaced by new connection
[14:03:34] JoeHallCDT joins the room
[14:03:38] <JoeHallCDT> (actually, that’s stupid as it only follows 3xx)
[14:12:34] mpc81_dd17 joins the room
[14:16:38] maskys joins the room
[14:20:07] <alp> people testing block-collector, you can start sending reports to the collector daemon on my laptop on local network now: e.g. node index.js --collector http://31.133.136.208:1337/report http://httpstat.us/451
[14:22:12] maskys leaves the room: Connection failed: connection closed
[14:23:01] dantheta leaves the room: Disconnected: closed
[14:25:25] tarakiyee leaves the room: Disconnected: Replaced by new connection
[14:25:26] tarakiyee joins the room
[14:28:49] maskys joins the room
[14:30:53] <alp> Growing database of observations can be viewed here: http://31.133.136.208:1337/report
[14:35:05] dantheta joins the room
[14:37:53] <JoeHallCDT> ah, there we go: curl -I 107.170.106.55
[14:38:08] JoeHallCDT leaves the room
[14:38:21] JoeHallCDT joins the room
[14:38:32] <JoeHallCDT> ah, this works, nto: curl -I 107.170.106.55
[14:47:44] tarakiyee leaves the room
[14:49:50] dantheta leaves the room
[14:50:08] whoward joins the room
[14:50:18] whoward leaves the room
[14:52:52] tarakiyee joins the room
[14:54:17] olgacrystal leaves the room: Disconnected: closed
[14:54:54] JoeHallCDT leaves the room
[14:55:00] JoeHallCDT joins the room
[14:55:46] <JoeHallCDT> remotes: we are summarizing some of the progress so far
[14:56:16] <JoeHallCDT> all: I have to leave to go talk to our lawyers about net neutrality for a few hours. (boooo) But I’ll be online later and will be here tomorrow. Apologies!
[14:56:32] <logan@hackers.mu> JoeHallCDT: enjoy your session
[15:00:05] JoeHallCDT leaves the room
[15:00:38] runnegar@jabber.isoc.org leaves the room
[15:01:12] whoward leaves the room
[15:11:28] maskys leaves the room
[15:12:10] maskys joins the room
[15:14:25] <u> tarakiyee: https://github.com/u451f/wp-blocked/blob/master/wp-blocked.php
[15:14:31] <u> there is a settings part with options in this plugin
[15:15:11] <u> tarakiyee: starting line 266
[15:15:21] <tarakiyee> Thanks!
[15:15:53] <u> you can skip line 368 to 381 and only use what's in the else
[15:16:25] <u> this is for several options though and we would probably only need 1
[15:26:13] runnegar@jabber.isoc.org joins the room
[15:34:03] maskys joins the room
[15:37:45] maskys leaves the room: Connection failed: connection closed
[15:40:21] tarakiyee leaves the room
[15:40:25] tarakiyee joins the room
[15:43:04] runnegar@jabber.isoc.org leaves the room
[15:48:05] <nllz> first version implementation report: http://digitaldissidents.org/draft-impreport.html
[15:48:36] dantheta joins the room
[15:52:17] <dkg> tarakiyee: https://pad.riseup.net/p/ietf99-http451-tools
[15:54:02] tarakiyee leaves the room
[16:02:18] maite90 leaves the room: Disconnected: Replaced by new connection
[16:02:26] maite90 joins the room
[16:05:02] loganaden joins the room
[16:05:03] shivan joins the room
[16:06:22] <shivan> Hey everyone, just realized we have a jabber chat room
[16:06:40] <dkg> hi shivan!
[16:06:45] <dkg> i'm looking at your alert code
[16:06:48] <dkg> i like it :)
[16:06:59] <dkg> i'm going to push it to master on the browserplugin repo, i think
[16:07:03] <shivan> You think it's okay to display an alert?
[16:07:06] <shivan> From a UX pov?
[16:07:07] <dkg> i'm tempted to rename that repo, since it's pretty generic
[16:07:12] <shivan> Yeah I agree about renmaing
[16:07:13] <dkg> i think it's good for debugging for the moment :)
[16:07:15] <shivan> *renaming
[16:07:18] <shivan> okay great!
[16:07:36] <dkg> codarren@hackers.mu: i'm pretty concerned about creating extra network traffic.  imagine a web page that actually does something on the backend if you load the resource twice, for example.  now you get two pizzas sent to your house instead of one! :P
[16:07:47] <shivan> Yeah I was thinking of that!
[16:07:56] <shivan> I noticed the other repo sent a new request
[16:08:09] <dkg> shivan: i might do a bit more reorganization also, like moving everytihng to the top-level
[16:08:25] <dkg> shivan: what do you know about data storage in an extension?
[16:08:28] <shivan> I was wondering if it was because of browser compatibility, but Firefox has web request https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest
[16:08:35] <shivan> What kind of storage?
[16:08:38] <shivan> Like cache?
[16:08:41] logan@hackers.mu leaves the room: Connection failed: connection closed
[16:08:43] <shivan> I mean, browser cache?
[16:08:50] <shivan> I've used it before
[16:08:57] <dkg> well, i'm thinking about how to indicate to the user that something is amiss with the page they're on
[16:09:23] <shivan> Hmm but why would that need storage?
[16:09:26] <dkg> we have two extensions and i need names for them.  so i'll call the one that shivan started extension X, and the one that codarren started extension Y
[16:09:28] <shivan> Oh are you thinking in terms of storing logs?
[16:09:41] <dkg> no, not for logs.  hang on a sec while i try to write this down... :)
[16:09:55] <dkg> extension X notices when *any* subresource has a 451
[16:10:04] <dkg> extension Y only notices with the primary resource is 451
[16:10:14] tarakiyee joins the room
[16:10:25] <dkg> however, extension Y shows an indicator the whole time you're on the 451 page
[16:10:38] <dkg> while extension X only shows the "451" red badge briefly.
[16:10:56] <dkg> (if we have better names than X and Y i'd love to switch to them.  names are good!)
[16:11:15] <dkg> so i like X's behavior for completeness, but i like Y's behavior for UI
[16:11:21] <shivan> That's because there's a timeout on it… it doesn't have to display it briefly
[16:11:26] <dkg> i'm trying to figure out how to get the best of both worlds.
[16:11:36] <dkg> if you display it and then i switch tabs, what happens?
[16:11:47] <dkg> if you deisplay it and then i navigate away, what happens?
[16:11:54] <shivan> Good question! Let me try it out
[16:12:07] <dkg> i'm gonna push my merge
[16:13:04] <shivan> Yeah currently it will always display the red badge, no matter what tab you navigate to
[16:13:05] <dkg> shivan: https://dkg.fifthhorseman.net/http451-example/mild.html might be a useful test -- primary page is HTTP 200, one subresource is HTTP 200, two other subresources are HTTP 451
[16:13:55] <dkg> ok, so here's what i was thinking: when a webrequest comes in, we should be able to learn what the primary URL is, as well as the URL of the requested resource
[16:14:10] <dkg> so if we can store "this primary URL asked for resource X, which was blocked"
[16:14:26] <dkg> and then when you switch tabs, we check to see whether the primary URL is active in the address bar or not
[16:15:33] <dkg> so we'd store a map of:  { "https://dkg.fifthhorseman.net/http451-example/mild.html": [ "https://dkg.fifthhorseman.net/http451-examples/image1.png", "https://dkg.fifthhorseman.net/http451-examples/image2.png"] }
[16:15:57] <dkg> or rather:  { "https://dkg.fifthhorseman.net/http451-example/mild.html": [ "https://dkg.fifthhorseman.net/http451-examples/image1.png", "https://dkg.fifthhorseman.net/http451-examples/image2.png"], … }
[16:16:21] <dkg> then when you switch tabs, you display the badge based on whether the current URL is a key in the datastore.
[16:16:34] <shivan> The goal is that the icon should be animated/red/whatever only when we're on a tab that got a 451 response, right?
[16:16:39] <dkg> right
[16:16:46] <dkg> i'd prefer if this datastore is completely ephemeral, though
[16:16:56] <shivan> I'm wondering if the Chrome API offers a more native way..
[16:17:00] <shivan> I'll have to look
[16:17:04] <dkg> i don't want to write logs to the user's disk that say "i visited this contraband website" :)
[16:17:46] <shivan> okay, give me some time, I'll look into it
[16:17:52] <dkg> i'd also like to purge those entries from the data store when the top-level page gets navigated away from
[16:18:12] <dkg> (assuming that no other tab or window has the top-level URL active)
[16:18:42] <dkg> then, if the user clicks on the extension icon, we can also present the list of 451'ed subresources that we've seen while looking at this page.
[16:18:52] <dkg> and give them an option to do the report.
[16:19:18] <dkg> ("do the report" == "report them to the crawler/collector")
[16:40:47] <maskys> Alright guys, here's my contribution to this hackathon: A new icon for the extension.
[16:41:15] <dkg> maskys: cool!  where can we get it?
[16:41:17] <maskys> While the current icon looks nice, once it is scaled down it is very difficult to discern the "HTTP" in the logo, and the color coding does not clearly convey whether the site uses status 451
[16:41:44] <maskys> Here's my design: https://maskys.smugmug.com/My-First-Gallery/n-TXV5Tm/
[16:42:18] <dkg> shivan: are you ok if i add a basic free software license to the extension?  i'd be fine with 2-clause BSD, 3-clause BSD, expat (MIT), or GPL, whatever you're comfortable with.
[16:42:26] <dkg> it's just nice to have a license available for the future.
[16:42:34] <maskys> Of course, I can make a slightly more complex logo to put on display on the web store.
[16:43:07] <dkg> maskys: very cool, thanks!
[16:43:28] <dkg> maskys: i'm having a bit of cognitive dissonance on which thing is the circle-slash and which thing is not
[16:43:44] <maskys> dkg: I can thicken the slash
[16:43:51] <shivan> dkg: that's fine!
[16:44:00] <dkg> i think the issue is that the idea that "good" has the slash through it is confusing
[16:44:15] <dkg> shivan: cool, i'll do that.  any preference on the rename?  that's my last bit of cleanup
[16:44:25] <shivan> I've typically gone with GPL v3
[16:44:26] <maskys> Ah I see. Maybe remove the slash then?
[16:44:42] <dkg> i'm wondering whether we can hide the icon entirely when there's no 451 response
[16:44:48] <dkg> do we need to show it in the normal case?
[16:44:56] <shivan> 451 reporter is what I initially had, but if you have a snappier name in mind that's fine
[16:44:56] <shivan> hmm
[16:45:13] <shivan> maybe we could make it a page action
[16:45:16] <dkg> shivan: 451reporter is great.  i'll do that shortly.
[16:45:37] <maskys> dkg: hmmm, never seen an extension that could do that before. Would be cool if we could implement it though.
[16:45:47] <shivan> also I think it's possible to tie a badge to a tab
[16:47:49] <dkg> shivan: it's now: https://github.com/451hackathon/451reporter
[16:50:25] <dkg> i still need to add the license file.
[16:50:46] sunil leaves the room: Disconnected: closed
[16:53:33] <maskys> dkg: check the updated icon? https://maskys.smugmug.com/My-First-Gallery/n-TXV5Tm/i-dfP37Dw
[16:55:09] tarakiyee leaves the room
[17:02:43] <codarren@hackers.mu> sorry was not here
[17:02:58] <codarren@hackers.mu> @dkg & @shivan agree completely
[17:03:11] <codarren@hackers.mu> if you guys need help i'll be around
[17:04:17] <codarren@hackers.mu> @maskys cool idea for the logo
[17:06:17] alp joins the room
[17:06:28] alp leaves the room: Disconnected: closed
[17:07:18] nllz leaves the room
[17:07:30] nllz joins the room
[17:12:16] <shivan> dkg: I restricted the badge to only animate for the tab that received a 451 status code
[17:12:26] <shivan> pushed
[17:12:43] <dkg> shivan: great, i'll take a look. sorry for the reorg and the rename, it's always kind of a pain to have someone else shuffle stuff around.
[17:13:36] <shivan> no problem! I guess I was too Java-ey in my initial set up, it didn't need to have a complicated project structure
[17:14:52] runnegar@jabber.isoc.org joins the room
[17:14:53] runnegar@jabber.isoc.org leaves the room
[17:16:11] <dkg> shivan: my usual instinct is to start simple and complexify as we discover the need :)
[17:16:24] <dkg> i think i understand your changes -- thanks for doing this, i'm learning a lot :)
[17:16:46] <shivan> the code is a mess
[17:18:03] <shivan> I'll clean it up. I'm not actually using the blockedResources map yet, but the idea was that we add a handler to extensionIconClick so that we can display the blocked resources (somehow)
[17:19:29] u leaves the room
[17:19:30] tarakiyee joins the room
[17:19:47] maite90 leaves the room
[17:19:53] maskys leaves the room: Stream reset by peer
[17:21:02] <dkg> shivan: if i tab away and then tab back i lose the info
[17:21:23] <dkg> so i'm not sure what the scope is for the blockedResources dictionary
[17:23:12] <shivan> Hmm it should be the same as that for background.js, which should be as long as the extension is installed...
[17:24:48] maite90 joins the room
[17:25:19] maite90 leaves the room: Disconnected: Replaced by new connection
[17:25:26] maite90 joins the room
[17:28:15] <tarakiyee> @u451f: hey I pushed the blocker reporting code to the repo
[17:28:25] maskys joins the room
[17:29:26] tarakiyee leaves the room
[17:42:10] mpc81_dd17 leaves the room: Disconnected: closed
[17:43:08] maite90 leaves the room: Disconnected: Replaced by new connection
[17:47:50] tarakiyee joins the room
[17:47:54] u joins the room
[17:53:13] tarakiyee leaves the room
[17:55:28] tarakiyee joins the room
[17:55:42] tarakiyee leaves the room: Disconnected: Replaced by new connection
[17:55:43] tarakiyee joins the room
[17:58:16] tarakiyee leaves the room
[18:03:00] maskys leaves the room: Stream reset by peer
[18:04:41] codarren@hackers.mu leaves the room
[18:13:35] <nllz> http://digitaldissidents.org/draft-451-imp-report.html
[18:14:05] loganaden leaves the room: Stream reset by peer
[18:14:17] maskys joins the room
[18:17:55] <shivan> nllz: do you think the Current Usage section of the impl report should mention providers like GitHub that have a policy for reporting status 451 for blocked repositories?
[18:18:37] <nllz> I'd love to add! Do you have a link where I can find more info?
[18:18:46] dantheta leaves the room
[18:18:49] <nllz> Probably also Reddit
[18:21:49] <shivan> nllz: https://developer.github.com/changes/2016-03-17-the-451-status-code-is-now-supported/
[18:21:56] tarakiyee joins the room
[18:23:24] <dkg> shivan: i've been reading https://developer.chrome.com/extensions/pageAction and i think we should make this a pageaction instead of a browseraction
[18:23:28] <dkg> i'm gonna try to make that work
[18:23:48] <shivan> agreed!
[18:23:50] <dkg> that also means that we can use maskys's sweet 451 icon, but without the confusing variant with the green circle+slash
[18:24:18] <dkg> it'll probably take me longer than it takes you to do it, but if you don't mind letting me try, i'll probably learn more from doing it.
[18:24:53] <shivan> definitely :)
[18:25:00] <dkg> ok, i'm on it.
[18:25:10] <shivan> I'm going to push my code clean up, if that's all right
[18:25:38] <shivan> Have you made changes? If not, might be easier to first get the latest code and then start work
[18:26:01] <dkg> sure, push your code cleanup first
[18:26:05] <dkg> i haven't made any changes
[18:26:24] <dkg> also, we'll be able to use the badge info to count number of subresources
[18:26:35] <shivan> okay done. Let me know if the code clean up breaks everything haha
[18:26:37] <shivan> good idea!
[18:27:14] <dkg> wow, that's a lot of changes.
[18:27:23] <dkg> do you expect any functional difference?
[18:27:41] <shivan> no it should all be the same
[18:28:06] <shivan> I tried to make the flow easier to understand
[18:29:16] <dkg> thanks, i think it's all working as expected.
[18:29:41] <dkg> maskys: do you have a 128×128 version of https://photos.smugmug.com/My-First-Gallery/n-TXV5Tm/i-dfP37Dw/0/66fdabfd/Ti/i-dfP37Dw-Ti.png ?
[18:30:29] <dkg> shivan: hm, page icons can't have badges: https://developer.chrome.com/extensions/pageAction
[18:30:42] <shivan> ohhhh right
[18:30:52] <shivan> that's why I decided to not make it a page action!
[18:31:07] <shivan> sorry completely forgot
[18:31:16] <dkg> maybe we can make three variants of the icon: one for the main page, one for 1 or more subresources, and 1 for the main page + some subresources
[18:31:26] maskys leaves the room: Stream reset by peer
[18:31:41] <dkg> but for now, we can just have a single icon that indicates that *something* was 451'ed
[18:31:49] <dkg> since most users don't understand subresources anyway
[18:33:37] <shivan> yes… it would have been cool though to have a counter to show how many resources blocked, like how Privacy Badger does it
[18:33:48] <shivan> *counter on the badge
[18:37:09] <dkg> yeah, but this should be grayed out in general, since most folks don't encounter censorship regularly.
[18:37:57] <shivan> true
[18:39:02] <shivan> hmm it IS possible to keep the browser action greyed out in general, and then activate when 451 is received.
[18:39:15] <shivan> but I think making a page action would be better
[18:39:31] <shivan> and like you said we can just inject different icons
[18:44:32] <nllz> shivan I've updated the text under usage to include your suggestions. Works for you? http://digitaldissidents.org/draft-451-imp-report.html
[18:45:43] maskys joins the room
[18:47:54] maskys leaves the room: Stream reset by peer
[18:48:55] <shivan> nllz: The sentence mentions "several large content providers…" but we provide only one example.
[18:54:06] <nllz> am looking for a link for reddit
[18:54:09] JoeHallCDT joins the room
[18:54:14] <nllz> but they don't seem to have a policy page
[18:54:57] <nllz> so maybe I should just mention it without a link
[18:55:17] <shivan> Would a news story count as a source?
[18:55:38] <nllz> yes
[18:55:52] <shivan> TurkeyBlocks had a story about it a while back
[18:55:53] <shivan> https://turkeyblocks.org/2017/04/04/lgbti-sections-disappear-as-reddit-complies-with-turkey-censorship-orders/
[18:56:05] <nllz> NICE
[18:56:06] <shivan> It's pretty recent, April 2017
[18:59:04] <nllz> tx
[19:02:05] <alp> :-)
[19:06:23] <shivan> dkg: do you think there is value in having notifications at all? Or should we just expect the user to click the extension icon to get/send details about the blocked resources
[19:07:07] <JoeHallCDT> that may be one for user testing... I forgot to mention but mt from moz said if there are things we’d like to see FF do differently with 451 he’d be up for talking about them
[19:07:42] <JoeHallCDT> that would include browser notifications but also, note that I think FF doesn’t render subresources at all in the 4xx line... and he’d be willing to accept a patch that treated that differently for 451
[19:09:30] <shivan> The extension functionally works in FF
[19:09:39] <shivan> as-is, I mean
[19:10:17] <shivan> without notifications, but that might be because I'm not using the right cross-browser api
[19:10:49] <JoeHallCDT> ah, I misunderstood sorry
[19:11:13] <JoeHallCDT> and mt was talking about potentially pulling work here into mainline FF, just a though
[19:11:33] <shivan> interesting
[19:17:52] http451 leaves the room: Disconnected: closed
[19:26:28] <dkg> shivan: i think you might be right that clicking is better than notifications
[19:27:02] <dkg> shivan: i'm seeing weird errors on console.log() that i don't understand.
[19:27:11] <dkg> i'm gonna push my changes and see if you see them.
[19:27:12] <shivan> can you paste?
[19:27:16] <shivan> okay
[19:29:21] <dkg> i'm gonna try to add a popup next
[19:29:30] <dkg> ok, pushed.  let me know if you see the same errors.
[19:32:06] <shivan> wait, I thought page action would make the icon disappear
[19:33:24] <dkg> it makes it greyed out
[19:33:42] <dkg> and it handles clearing it automatically
[19:36:58] <shivan> If we use a browser action, we could keep it greyed out, and only enable it for the relevant tab.
[19:37:33] <dkg> there could be multiple relevant tabs
[19:37:42] <dkg> i was hoping to keep the thing activated for specific tabs
[19:37:50] <dkg> using the browser's built-in tracking for it
[19:38:00] <dkg> and i kind of thought the pageaction would be able to do that.
[19:38:49] nllz leaves the room
[19:38:57] tarakiyee leaves the room
[19:38:59] <shivan> if we set the browserAction.disable() in the first line of background.js, and do chrome.browserAction.enable(currentTab.id); in the 451 status code handler, then wouldn't it be the same functionality?
[19:42:32] alp joins the room
[19:42:46] <shivan> I was hoping the page action would make the extension icon disappear. If it's the same thing as manually enabling and disabling, then perhaps we could use the badge to display some info to the user. I think it's a question of how much value the badge gives us.
[19:44:57] JoeHallCDT leaves the room
[19:51:19] dkg leaves the room
[19:54:13] alp leaves the room: Disconnected: closed
[19:56:04] u leaves the room
[20:01:13] alp leaves the room: Disconnected: closed
[20:30:22] nllz joins the room
[20:37:38] tarakiyee joins the room
[21:10:54] nllz joins the room
[21:21:51] nllz leaves the room
[21:30:17] dkg joins the room
[21:32:07] <dkg> shivan: sorry, i'm out for the evening now, back online at 9am my time (in about 9.5 hrs) -- i think the tradeoff is between the badges, versus having the tabs mechanisms automatically handle the button enabling
[21:39:40] http451 joins the room
[21:42:16] <nllz> gnite all!
[21:43:19] nllz leaves the room
[21:46:34] http451 leaves the room
[21:59:25] <shivan> dkg: sounds good! Did you say you'll be working on the popup and populating it? I could look at how to communicate between the extension and crawler
[22:23:20] tarakiyee leaves the room: Disconnected: Replaced by new connection
[22:23:20] tarakiyee joins the room
[22:28:15] tarakiyee leaves the room
[22:54:52] dkg leaves the room
[23:10:49] shivan leaves the room: Disconnected: closed
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!