01:17:41 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to master: http://git.io/vTGV5 01:17:41 -GitHub[nikola]:#nikola- nikola/master 7550c74 Roberto Alsina: Fix yapsy version for #1730 01:20:24 <Aeyoun> Wrote up some more docs and examples for the recent_posts_json plug-in, if anyone is interested. https://www.aeyoun.com/devel/nikola-recent-posts-plugin.html 01:30:35 -travis-ci:#nikola- getnikola/nikola#5051 (master - 7550c74 : Roberto Alsina): The build passed. 01:30:36 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/f6cce1138f2e...7550c7448d27 01:30:36 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63106198 01:31:00 <ralsina> Aeyoun: can you confirm that if you use auto -b things actually rebuild? 01:31:18 <ralsina> livereload sometimes feels like it works out of pure chance 01:48:44 <Aeyoun> ralsina: y 01:49:01 <ralsina> blah 01:49:22 <ralsina> I am tempted to debug it further but fear I would end reimplementing that thing out of pure disgust 01:49:40 <Aeyoun> ralsina: it does, assuming there are no problems. if any file ever has an issue (tag or task collision, template breakage, etc) it dies and stays dead 01:49:50 <ralsina> Aeyoun: it doesn't die here 01:50:00 <ralsina> it fails to build but it will fail to build again as many times as needed :-) 01:50:11 <Aeyoun> "dies" as in, pretends to be dead. no updates. 01:50:24 <ralsina> if I touch a file, it rebuilds and fails again, here 01:50:27 <Aeyoun> for me I have to kill and restart it to get it going again. 01:51:06 <Aeyoun> speaking of killing and restaring things; I should have been asleep four hours ago. :O 01:51:44 <ralsina> go to bed 09:30:21 -GitHub[nikola]:#nikola- [nikola] Kwpolska pushed 1 new commit to requires-io-master: http://git.io/vTnGO 09:30:21 -GitHub[nikola]:#nikola- nikola/requires-io-master 25bb39e requires.io: [requires.io] dependency update 09:38:30 -travis-ci:#nikola- getnikola/nikola#5052 (requires-io-master - 7550c74 : Roberto Alsina): The build was fixed. 09:38:31 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/requires-io-master 09:38:31 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63143445 09:45:15 -travis-ci:#nikola- getnikola/nikola#5054 (requires-io-master - 25bb39e : requires.io): The build has errored. 09:45:16 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/7550c7448d27...25bb39e75caf 09:45:16 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63143522 10:19:37 <ralsina> Argh! livereload INTENTIONALLY doesnt trigger rebuilds if there is no browser watching. 10:20:26 <gour> hmm...pretending to be smarter than required :-) 10:21:49 <gour> ralsina: btw, being from croatia, how did you arrive at nikola's name? 10:22:15 <ralsina> gour: static -> sparks -> tesla -> nikola :-) 10:22:31 <gour> nice ;) 10:22:48 <ralsina> I will freaking rewrite livereload today at lunch 10:24:17 <gour> i thought i'd have to possibly learn some go (for hugo), but it seems nothing wil come out of it and i'll try to become (more) familiar with python :-) 10:27:13 <gour> just wonder what is your secret of having nikola runs well with both py2k and py3k 10:33:56 <ralsina> gour: there is a subset of the language that is valid python 2 and 3 10:34:14 <ralsina> so, just use that. The tricky part is strings/unicode 10:34:41 <Aeyoun> ralsina: how is "watching" defined? 10:35:02 <ralsina> Aeyoun: connected to the tornado thing, somehow 10:35:35 <Aeyoun> ralsina: I always use it with "-b" 10:35:51 <ralsina> Yes, me too 10:36:08 <ralsina> but suppose you start it with -b, stop it and then start it again 10:36:21 <ralsina> bah, anyway, I hate it and it breaks all the time 10:37:28 <Aeyoun> ralsina: too bad it’s such a useful feature. ;-P 10:37:41 <ralsina> Aeyoun: I will keep the feature, just remove the dependency 10:37:42 * Aeyoun could live with reloading the browser if only auto would actually build the damned thing 10:38:17 <ralsina> Aeyoun: I can make a dumb version in less than one hour 10:38:36 <Aeyoun> ralsina: do you inject a javascript to auto-reload? 10:38:53 <ralsina> I don't have the details of that side yet, but I intend to just copy that part ;-) 10:39:13 <ralsina> but yes: https://github.com/lepture/python-livereload/blob/master/livereload/vendors/livereload.js 10:39:41 <Aeyoun> ralsina: just reload every five seconds using <meta http-equiv="refresh" content="5; url=$permalink"> 10:39:53 <ralsina> nah, that's ugly 10:40:05 <Aeyoun> ralsina: … but it works. ;) 10:40:14 <ralsina> I can do better 10:40:26 <ralsina> I have reverse-engineering skillz 10:40:28 <Aeyoun> sometimes you don’t need better. 10:41:03 <ralsina> I don't want the feature to go in the wrong direction 10:41:25 <ralsina> it's one of the things people try and go wow 10:41:30 <ralsina> so, let's keep the wow there 10:42:32 <Aeyoun> ralsina: an aside but, redirect bugs.getnikola.com => github.com/getnikola/nikola ? I always start typing bugs.getn… before remembering that this doesn’t work for this project. So many projects use this URL for their bug tracker that it’s juts become habit. 10:42:42 <ralsina> sure 10:42:52 <ralsina> after I take my son to school 10:43:26 <Aeyoun> ralsina: also "nikola check -r" doesn’t tell me the URL of the broken link nor the page that link is on. :( 10:43:35 <Aeyoun> INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): plus.google.com [2015-05-19T10:38:26Z] ERROR: check: Error with: output/index-7.html ('Connection aborted.', gaierror(-2, 'Name or service not known')) 10:43:41 <ralsina> Aeyoun: ITERATIONS :-) 10:43:59 <ralsina> but hey, index-7.html :-) 10:44:31 <Aeyoun> ralsina: ah, I saw it now :P 10:45:28 <Aeyoun> ralsina: the problem actually seems to be that every page contains a link to plus.google.com and that "check -r" will repeatedly check the exact same link for all pages. causing plus.google.com to go "wow! slow down, coboy" and drop connections. 10:45:50 <Aeyoun> I’ll go hide in the bug tracker for a while. Make some new entries there. :P 10:51:52 <gour> Aeyoun: 8.0 features? 10:52:12 <Aeyoun> hm, it also don’t understand redirects 10:54:08 <Aeyoun> oh. it reported _every single link_ as broken. 11:05:41 <Aeyoun> oh. okay. it’s just missing a continue after checking remote links. 11:09:11 * Aeyoun will fix it 11:31:39 -GitHub[nikola]:#nikola- [nikola] Aeyoun pushed 1 new commit to master: http://git.io/vTnd4 11:31:39 -GitHub[nikola]:#nikola- nikola/master c09c93c Daniel Aleksandersen: Remote links all returned warnings when checked... 11:39:26 -travis-ci:#nikola- getnikola/nikola#5056 (master - c09c93c : Daniel Aleksandersen): The build was broken. 11:39:27 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/7550c7448d27...c09c93cf7229 11:39:27 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63156852 11:41:40 -GitHub[nikola]:#nikola- [nikola] Aeyoun pushed 1 new commit to master: http://git.io/vTnNC 11:41:40 -GitHub[nikola]:#nikola- nikola/master 7553b5a Daniel Aleksandersen: flake8 11:51:04 -travis-ci:#nikola- getnikola/nikola#5057 (master - 7553b5a : Daniel Aleksandersen): The build was fixed. 11:51:05 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/c09c93cf7229...7553b5af23af 11:51:05 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63158007 11:54:39 <ralsina> Aeyoun: hmmm that can be fixed with a nice little cache. If you file the bug I can fix it. 11:54:54 -GitHub[nikola]:#nikola- [nikola] Aeyoun pushed 1 new commit to master: http://git.io/vTnhR 11:54:54 -GitHub[nikola]:#nikola- nikola/master cb316c3 Daniel Aleksandersen: Don’t recheck the same remote address more than once... 11:55:21 <Aeyoun> ralsina: think it’s fixed already 11:55:23 <Aeyoun> :) 11:55:26 <ralsina> awesome 11:56:11 <ralsina> Aeyoun: if you want to report it again, you would have to make checked_remote_targets a dict and save the result 11:56:49 <ralsina> or maybe just save the failures and a list of pages that contain them and report http://foo broken, found in pages bar, bat, baz 11:57:03 <Aeyoun> https://youtu.be/9cQgQIMlwWw 11:57:52 <Aeyoun> ralsina: hm, I thought about it but … I assume you want to always fix all broken URLs? or not? 11:58:31 <ralsina> I assume yes, and that if there are broken URLs you don't want fied you will whitelist them 12:02:38 -travis-ci:#nikola- getnikola/nikola#5058 (master - cb316c3 : Daniel Aleksandersen): The build passed. 12:02:39 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/7553b5af23af...cb316c312867 12:02:39 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63159560 12:07:47 -GitHub[nikola]:#nikola- [nikola] Aeyoun pushed 1 new commit to master: http://git.io/vTcJr 12:07:47 -GitHub[nikola]:#nikola- nikola/master 34f02ad Daniel Aleksandersen: Report already checked but broken remote links on all pages 12:16:51 -travis-ci:#nikola- getnikola/nikola#5059 (master - 34f02ad : Daniel Aleksandersen): The build passed. 12:16:52 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/cb316c312867...34f02adbd89e 12:16:52 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63160883 12:27:31 <gour> '-r' option in nikola check is not functional? 12:28:33 <ralsina> gour: it was slightly broken 12:48:08 <Aeyoun> gour: it reported everything external link as broken. now it only reports broken links. also much faster because it only checks the same link once. 12:50:27 <gour> so, i'd have to use master/trunk? 12:52:32 <Aeyoun> gour: it’s only listed under "new in master" :) https://raw.githubusercontent.com/getnikola/nikola/master/CHANGES.txt 12:52:51 <Aeyoun> gour: if you scroll up, you'll see it was fixed like an hour ago. 12:58:26 <gour> Aeyoun: ok. ta 14:33:25 <ChrisWarrick> gour: also, you can just copy over the changes you want to your ~VIRTUAL_ENV/lib/python*.*/site-packages/nikola 16:09:01 <gour> ChrisWarrick: maybe i should just start using master :-) 16:09:43 <ChrisWarrick> gour: that is a good idea, too. 16:10:03 <ChrisWarrick> we are not really good at regular releases 16:41:54 <ralsina> ChrisWarrick: this is ~50% of livereload reimplemented http://hastebin.com/umeditecuh.py 16:42:14 <ralsina> By learning the protocol I now know we can send build errors to the client 16:42:36 <ralsina> only missing is the detection of on-disck changes which is rather simple 17:40:54 <ralsina> And this is about 75% http://hastebin.com/hizirapine.py 17:45:35 <ChrisWarrick> ralsina: are you hooking into doit auto, or writing something yourself? 17:45:45 <ralsina> ChrisWarrick: writing myself, it's easier 17:46:11 <ralsina> doit auto only watches file_dep of existing task 17:46:26 <ralsina> so adding new files or changing conf.py will do nothing for it 17:46:33 <ChrisWarrick> https://github.com/pydoit/doit/pull/51 17:47:09 <ralsina> well, it's not merged is it? 17:47:49 <ralsina> and AFAICS it would not fix that problem 17:49:44 <ChrisWarrick> I meant to suggest a nice solution for the watching problem. 17:51:49 <ralsina> I am doing a simple 1st iteration 17:52:01 <ralsina> if better ways to do things appear, then there will be a 2nd one :-) 18:12:15 <ralsina> Almost done 18:12:23 <ralsina> just need to turn it into a reasonable plugin 19:07:26 -GitHub[nikola]:#nikola- [nikola] ralsina created new-auto (+2 new commits): http://git.io/vTlrv 19:07:26 -GitHub[nikola]:#nikola- nikola/new-auto aec80b4 Roberto Alsina: Auto plugin that doesn't use livereload 19:07:26 -GitHub[nikola]:#nikola- nikola/new-auto 45124f2 Roberto Alsina: no more livereload dep 19:09:24 -GitHub[nikola]:#nikola- [nikola] ralsina opened pull request #1734: [WIP] New auto (master...new-auto) http://git.io/vTlr5 19:13:54 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to new-auto: http://git.io/vTlKr 19:13:54 -GitHub[nikola]:#nikola- nikola/new-auto 24676f9 Roberto Alsina: use snippet better 19:17:19 <ralsina> There, removed livereload at the cost of ~100 LOC 19:17:23 <ralsina> ánd it works better 19:17:27 <ralsina> and has more features 19:18:31 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to new-auto: http://git.io/vTlic 19:18:31 -GitHub[nikola]:#nikola- nikola/new-auto 977aa62 Roberto Alsina: client side of livereload 19:18:44 <NGuerrero> hi guys 19:19:08 <ralsina> Hola NGuerrero 19:19:52 -travis-ci:#nikola- getnikola/nikola#5060 (new-auto - 45124f2 : Roberto Alsina): The build failed. 19:19:53 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/aec80b4522a3^...45124f28b45e 19:19:53 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63222275 19:22:34 <NGuerrero> I've been having some issues with my virtualenv, I create a new virtualenv with virtualenvwrapper, when I do this I have an exception 19:22:37 <NGuerrero> Hola ralsina 19:22:40 <NGuerrero> http://linkode.org/ScxQVjsqdUSZF5ePPo2l77 19:23:19 <NGuerrero> The import doesn't matter, I'm wondering why its calling python2 when I setup virtualenv with python 3 19:24:06 <NGuerrero> I should declare an environment variable to specify which python should execute? 19:28:17 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to new-auto: http://git.io/vTl1A 19:28:17 -GitHub[nikola]:#nikola- nikola/new-auto f8fe7e5 Roberto Alsina: misc fixes 19:28:30 <ralsina> let me see 19:29:07 <ralsina> NGuerrero: that doesn't look nikola-related at all 19:29:20 <ralsina> NGuerrero: you will have better luck asking in #pyar :-) 19:29:38 <NGuerrero> Ok, I'll check my setup 19:29:39 <NGuerrero> thanks 19:29:43 <NGuerrero> ok 19:29:47 <NGuerrero> :D 19:29:53 <ChrisWarrick> NGuerrero: not a Nikola issue, your venvwrapper might be botched 19:30:31 <ChrisWarrick> ralsina: how is the bugs.gn.com redirect and coil demo site going? 19:30:44 <ralsina> not even started 19:31:39 <ChrisWarrick> the redirect should take two minutes, tops 19:31:46 <ralsina> decided reimplementing the wheel was more fun 19:31:51 <ralsina> Ill do the redir now 19:32:22 <ChrisWarrick> livereload was crazy anyway 19:33:41 -travis-ci:#nikola- getnikola/nikola#5063 (new-auto - 24676f9 : Roberto Alsina): The build failed. 19:33:42 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/45124f28b45e...24676f9d1df4 19:33:42 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63223137 19:37:06 <ChrisWarrick> ralsina: aren't we missing n/p/commands/auto/__init__.py? 19:37:15 <ralsina> ChrisWarrick: hmmm no 19:37:20 <ralsina> it works anyway 19:37:25 <ralsina> AFAICS :-) 19:37:35 <ralsina> ChrisWarrick: I did a redirect but I get "site is not available" 19:37:45 <ralsina> ChrisWarrick: maybe we need to put it up in DNS? 19:37:56 <ralsina> although it resolves 19:38:16 <ralsina> it may need to be set to cloudflare-enabled because of the crazy https stuff 19:38:21 <ChrisWarrick> ralsina: you have to add it in cloidflare 19:38:32 <ralsina> I don't have the creds handy :-P 19:38:37 <ChrisWarrick> ralsina: follow entry for themes.getnikola.com 19:39:27 * ChrisWarrick looks up CF creds 19:39:48 -travis-ci:#nikola- getnikola/nikola#5064 (new-auto - 977aa62 : Roberto Alsina): The build failed. 19:39:49 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/24676f9d1df4...977aa62df73b 19:39:49 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63223778 19:40:44 * ChrisWarrick needs to migrate from Chrome's password manager which loves to forget thingd 19:43:21 <ChrisWarrick> DNS done, gotta love responsive webpages (on mobile) 19:43:58 <ralsina> hey, works and everything 19:44:09 <ChrisWarrick> Aeyoun: ^ 19:44:29 <ChrisWarrick> Aeyoun: bugs.getnikola.com is now a thing 19:47:54 <Aeyoun> ChrisWarrick: take it from someone familiar with Chromium: don't use their pwm. 19:49:29 -GitHub[nikola]:#nikola- [nikola] Kwpolska pushed 1 new commit to new-auto: http://git.io/vTl5m 19:49:29 -GitHub[nikola]:#nikola- nikola/new-auto 8691da6 Chris Warrick: add __init__.py for imports and installability... 19:49:44 <Aeyoun> ChrisWarrick: woho! Practical. I can now type "bugs." and choose Nikola from the browser drop down showing all projects I work on. 19:49:52 <ChrisWarrick> Aeyoun: migrating to keepass whenever I will have time 19:51:00 <ChrisWarrick> which will be Sat 2015-05-30 19:51:17 <Aeyoun> ChrisWarrick: http://www.passwordstore.org/ ;-) 19:51:38 <Aeyoun> bash+pgp+git 19:52:07 <ChrisWarrick> amusing 19:52:39 <ChrisWarrick> though I can live without unix philosophy 19:53:27 -travis-ci:#nikola- getnikola/nikola#5066 (new-auto - f8fe7e5 : Roberto Alsina): The build is still failing. 19:53:28 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/977aa62df73b...f8fe7e535424 19:53:28 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63225198 19:54:40 <Aeyoun> ChrisWarrick: regarding the user-agent choice, http://www.commitstrip.com/en/2015/05/19/data-wars/ :D 19:55:52 <ChrisWarrick> Aeyoun: is this the user agent evolution history ending with Cr=Moz+Gecko+KHTML+Safari? 19:56:15 <Aeyoun> ChrisWarrick: I like that it doensn’t use a db and that git will checksum and offer versioning for free. pass is actually a good application of many technologies. 19:56:43 <ChrisWarrick> Aeyoun: im wondering how the android app works 19:56:58 <ChrisWarrick> Aeyoun: android support is a must 19:57:01 <Aeyoun> you forgot "opr yx" (opera yandex) 19:57:15 <Aeyoun> ChrisWarrick: I use the pass app on android. syncs via git. 19:57:37 <ChrisWarrick> will see tomorrow 19:57:42 * ChrisWarrick goes to sleep 19:59:55 -travis-ci:#nikola- getnikola/nikola#5068 (new-auto - 8691da6 : Chris Warrick): The build is still failing. 19:59:56 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/f8fe7e535424...8691da6e044c 19:59:57 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63228095 20:07:44 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to master: http://git.io/vTlhJ 20:07:44 -GitHub[nikola]:#nikola- nikola/master abdc591 Roberto Alsina: Merge pull request #1723 from getnikola/prettier-html... 20:09:05 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to new-auto: http://git.io/vTlhE 20:09:05 -GitHub[nikola]:#nikola- nikola/new-auto 30c56a9 Roberto Alsina: fix host default 20:09:54 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to fix-1688: http://git.io/vTlhH 20:09:54 -GitHub[nikola]:#nikola- nikola/fix-1688 39b7d31 Roberto Alsina: merged master 20:10:04 -GitHub[nikola]:#nikola- [nikola] ralsina deleted fix-1688 at 39b7d31: http://git.io/vTlhd 20:11:32 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to refactor-scanposts: http://git.io/vTlj4 20:11:32 -GitHub[nikola]:#nikola- nikola/refactor-scanposts ac2c766 Roberto Alsina: merged master 20:13:27 -GitHub[nikola]:#nikola- [nikola] ralsina pushed 1 new commit to refactor-scanposts: http://git.io/vT8e3 20:13:27 -GitHub[nikola]:#nikola- nikola/refactor-scanposts 3b08b41 Roberto Alsina: merged master 20:19:41 -travis-ci:#nikola- getnikola/nikola#5071 (new-auto - 30c56a9 : Roberto Alsina): The build is still failing. 20:19:42 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/8691da6e044c...30c56a96767c 20:19:42 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63231109 20:22:45 -travis-ci:#nikola- getnikola/nikola#5070 (master - abdc591 : Roberto Alsina): The build passed. 20:22:46 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/34f02adbd89e...abdc591eb9d3 20:22:46 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63230937 20:37:56 -travis-ci:#nikola- getnikola/nikola#5074 (fix-1688 - 39b7d31 : Roberto Alsina): The build has errored. 20:37:57 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/12a23efbbb5d...39b7d3157dca 20:37:57 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63231310 20:41:46 -travis-ci:#nikola- getnikola/nikola#5077 (refactor-scanposts - ac2c766 : Roberto Alsina): The build was broken. 20:41:47 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/422e0e1abfba...ac2c766e0ec1 20:41:47 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63231568 20:52:00 -travis-ci:#nikola- getnikola/nikola#5078 (refactor-scanposts - 3b08b41 : Roberto Alsina): The build was broken. 20:52:01 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/ac2c766e0ec1...3b08b41e1f12 20:52:01 -travis-ci:#nikola- Build details: http://travis-ci.org/getnikola/nikola/builds/63231834 20:55:44 <Aeyoun> ChrisWarrick: android app is just a searchable list and a minimal texteditor. they use your gpg key to unencrypt and encrypt your passwords which it can sync to other clients over git. git, text editor, gpg is all in one package. 21:26:22 <Aeyoun> "Have you remembered to apply this one weird SEO trick to your website? You wouldn't believe what happen to our traffic the very next day!" 21:26:41 <Aeyoun> I get really weird yet oddly targeted spam.