<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Disqus - Latest Comments for tav</title><link>http://disqus.com/people/tav/</link><description></description><language>en</language><lastBuildDate>Mon, 26 Oct 2009 04:40:02 -0000</lastBuildDate><item><title>Re: Why App Engine Is Not Appropriate For Bootstrap</title><link>http://espians.disqus.com/why_app_engine_is_not_appropriate_for_bootstrap/#comment-21020129</link><description>Ryan Barrett — the man behind App Engine's datastore posted a really nice reply a few months ago. For some reason, Disqus sent the reply via e-mail but never showed it here, so here it is for the sake of completeness:&lt;br&gt;&lt;br&gt;--------------------------------------&lt;br&gt;&lt;br&gt;thanks for the post! we're always interested in well-reasoned feedback like this.&lt;br&gt;&lt;br&gt;it probably won't surprise you that most of the answers here boil down to priorities. we'd love to implement most of these, but we're not a big team, so we have to prioritize ruthlessly. i can address a few points specifically, though.&lt;br&gt;&lt;br&gt;2) agreed! unfortunately, datastore backend support for this is unlikely due to the underlying implementation on bigtable. happily, this is entirely possible in userland. my groups post has more details: &lt;a href="http://groups.google.com/group/google-appengine/browse_thread/thread/6e1e8f9321f53775#8469e1cffdfa828c" rel="nofollow"&gt;http://groups.google.com/group/google-appengine...&lt;/a&gt; . brett slatkin's recent i/o talk is also related, specifically the relation indexes/entities part: &lt;a href="http://code.google.com/events/io/sessions/BuildingScalableComplexApps.html" rel="nofollow"&gt;http://code.google.com/events/io/sessions/Build...&lt;/a&gt; .&lt;br&gt;&lt;br&gt;3) we actually considered this, and we may reconsider it in the future. the actual savings would be negligible in most cases, though. the only meaningful part we could remove is some of the protocol buffer encoding decoding and maybe one or two of the RPCs. the bulk of it, including the underlying datastore cost, would be unchanged.&lt;br&gt;&lt;br&gt;5) i'm very much looking forward to offering more async support in our APIs. in the meantime, check out vendasta's asynctools project, &lt;a href="http://squeeville.com/2009/07/24/asynctools/" rel="nofollow"&gt;http://squeeville.com/2009/07/24/asynctools/&lt;/a&gt; .&lt;br&gt;&lt;br&gt;6) we actually posted an in-depth postmortem less than a week afterward: &lt;a href="http://groups.google.com/group/google-appengine/browse_thread/thread/e9237fc7b0aa7df5#ba95ded980c8c179" rel="nofollow"&gt;http://groups.google.com/group/google-appengine...&lt;/a&gt; . regardless, agreed, we hate outages as much as everyone else. we're continually working to avoid and minimize them.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 26 Oct 2009 04:40:02 -0000</pubDate></item><item><title>Re: foursquare - Announcing the foursquare angel roster...</title><link>http://playfoursquare.disqus.com/foursquare_announcing_the_foursquare_angel_roster/#comment-19704459</link><description>Well done again guys -- that's an impressive list and I hope it comes together well for you.&lt;br&gt;&lt;br&gt;-- tav</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Fri, 09 Oct 2009 18:52:07 -0000</pubDate></item><item><title>Re: Tav Describes Pecus</title><link>http://thruflo.disqus.com/tav_describes_pecus/#comment-17357821</link><description>Hey boggle,&lt;br&gt;&lt;br&gt;Perhaps age is getting to you already ;p&lt;br&gt;&lt;br&gt;If you recall the conversation we had in the park last year, you already convinced me of limiting Pecu lifetimes! And if you go to the post above, you'll see that the pseudo-structure of a Pecu allocation already has a shiny "valid_until" field =)&lt;br&gt;&lt;br&gt;So, yes, I agree with you that limiting Pecu lifetimes has a lot of value. Regarding Liquid Democracy, see the link in the post above about Plex Democracy... it's even better!&lt;br&gt;&lt;br&gt;As for dilution, there are two separate issues. One is the constant dilution that happens through people making Pecu allocations. This is the very nature of Pecu allocations and designed to be so! It encourages people to (a) do things that have lasting value and (b) invest in efforts which will have a high "yield" (i.e. return on investment of their efforts).&lt;br&gt;&lt;br&gt;The other issue is of someone throwing their Pecu allocations totally out of whack by suddenly diluting everyone else close to nil. Given the existence of valid_until, there should a very good explanation for this OR there'd be a lot of social backlash against the individual.&lt;br&gt;&lt;br&gt;In contrast to the current frame where we rely on the law and regulation to ensure good behaviour, Pecus relies on people's social networks. And as the last year has clearly shown, laws and regulations are easily circumvented. In contrast, social pressure is much harder to work around...&lt;br&gt;&lt;br&gt;And, finally, regarding retirement, I thought the idea was to live fast, die young and leave a good looking corpse? ;p&lt;br&gt;&lt;br&gt;Just kidding -- there's a retirement plan awaiting you sir =)&lt;br&gt;&lt;br&gt;Sorry for the long delay in replying, but hope the above makes sense.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Fri, 25 Sep 2009 00:54:50 -0000</pubDate></item><item><title>Re: Support Espra: Create Weapons of Mass Construction!</title><link>http://espra.disqus.com/support_espra_create_weapons_of_mass_construction/#comment-17227297</link><description>Another test post -- please ignore</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Wed, 23 Sep 2009 12:32:37 -0000</pubDate></item><item><title>Re: Sanitising JSONP Callback Identifiers For Security</title><link>http://asktav.disqus.com/sanitising_jsonp_callback_identifiers_for_security/#comment-16113327</link><description>what you are describing is just the standard case of any XSS.&lt;br&gt;&lt;br&gt;But there is no difference what so ever between&lt;br&gt;&lt;br&gt;&amp;lt;script&amp;gt;alert(document.cookies)&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;and&lt;br&gt;&lt;br&gt;&amp;lt;script src="http://othersite.com/jsonp?callback=alert(document.cookies);foo"&amp;gt;&lt;br&gt;&lt;br&gt;while I agree that XSS must be avoided at all cost, this is not the job of the remote site. It's the job of the local site.&lt;br&gt;&lt;br&gt;PS: let's hope my sample code goes through :-)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilif</dc:creator><pubDate>Mon, 07 Sep 2009 17:20:12 -0000</pubDate></item><item><title>Re: Sanitising JSONP Callback Identifiers For Security</title><link>http://asktav.disqus.com/sanitising_jsonp_callback_identifiers_for_security/#comment-16101704</link><description>Thanks for the comment btw -- I've updated the article in response too. Cheers!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 07 Sep 2009 13:42:54 -0000</pubDate></item><item><title>Re: Sanitising JSONP Callback Identifiers For Security</title><link>http://asktav.disqus.com/sanitising_jsonp_callback_identifiers_for_security/#comment-16101232</link><description>Hey Philip,&lt;br&gt;&lt;br&gt;You are right, the code is executed in the context of the CALLERs page. But that is the problem...&lt;br&gt;&lt;br&gt;Imagine the scenario, where a client-side web application allows arbitrary data sources to be added... it's not too implausible a future where instead of adding RSS feeds to an RSS Reader, one adds JSON feeds to such an application...&lt;br&gt;&lt;br&gt;In this context, if the user is tricked into adding a maliciously crafted URL, then everything from their identity to their data is accessible... not to mention being able to abuse the account to spread a worm even...&lt;br&gt;&lt;br&gt;I believe the possibilities of using JSONP haven't been explored much yet, and for it to go further in the context of interesting mashups/applications, it's important that it not be a security hole...&lt;br&gt;&lt;br&gt;Hope that makes sense!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 07 Sep 2009 13:34:26 -0000</pubDate></item><item><title>Re: Board Of Mentors</title><link>http://espians.disqus.com/board_of_mentors/#comment-15750699</link><description>Good call with Stephen Fry -- can you add him via Git?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Wed, 02 Sep 2009 02:02:09 -0000</pubDate></item><item><title>Re: tr.im R.I.P.</title><link>http://trim.disqus.com/trim_rip/#comment-14534553</link><description>Sorry to hear about your current condition.&lt;br&gt;&lt;br&gt;Good job though and thanks for providing the service this long!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Sun, 09 Aug 2009 23:41:53 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-12622624</link><description>Sorry to hear that. I'm not familiar with the intrinsics of the PEP process, but maybe there is a chance of publishing what you have so far, and open the door for others to work on it. Maybe someone else has a solution.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Name</dc:creator><pubDate>Tue, 14 Jul 2009 06:27:14 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-12583056</link><description>Thanks man -- unfortunately I got stuck in terms of figuring out how to make exceptions raised inside blocks be Pythonic...&lt;br&gt;&lt;br&gt;Without solving that, not much use in putting together a PEP =(</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 13 Jul 2009 12:31:49 -0000</pubDate></item><item><title>Re: Logrep: A Simple Apache Log Analysis Script</title><link>http://asktav.disqus.com/logrep_a_simple_apache_log_analysis_script/#comment-12582584</link><description>@tavis: defaultdict is part of Python 2.5 and later -- you'd need to use a more recent version of Python with logrep.py</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 13 Jul 2009 12:23:14 -0000</pubDate></item><item><title>Re: Why App Engine Is Not Appropriate</title><link>http://espians.disqus.com/why_app_engine_is_not_appropriate/#comment-12168374</link><description>Testing...</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Sun, 05 Jul 2009 04:35:46 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-7337680</link><description>How about 'let' or 'let .. in' ? we could even have letrec.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Verte</dc:creator><pubDate>Thu, 19 Mar 2009 04:52:32 -0000</pubDate></item><item><title>Re: Say No to Google's Intrusion of Privacy</title><link>http://asktav.disqus.com/say_no_to_googles_intrusion_of_privacy/#comment-7158346</link><description>Hey Hannah,&lt;br&gt;&lt;br&gt;Thanks for that. I've updated the instructions slightly -- is it clearer now?&lt;br&gt;&lt;br&gt;I think it would be good to actually specify the location of the hosts file, but I fear that might get a bit too technical too quickly -- especially given the different platforms/routers/etc. =(&lt;br&gt;&lt;br&gt;Hopefully the link to the Wikipedia article is good enough?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Thu, 12 Mar 2009 21:25:40 -0000</pubDate></item><item><title>Re: Say No to Google's Intrusion of Privacy</title><link>http://asktav.disqus.com/say_no_to_googles_intrusion_of_privacy/#comment-7158263</link><description>Hey Nils,&lt;br&gt;&lt;br&gt;Like the cam-detector!!&lt;br&gt;&lt;br&gt;Thanks for pointing out NoScript -- I only worry that it might be a bit too technical for *most* users =(&lt;br&gt;&lt;br&gt;But good idea for the technical readers of this blog to try out...&lt;br&gt;&lt;br&gt;PS. Sorry we didn't get a chance to chat the other day...</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Thu, 12 Mar 2009 21:21:43 -0000</pubDate></item><item><title>Re: Happy Birthday Matthieu!</title><link>http://asktav.disqus.com/happy_birthday_matthieu/#comment-7158216</link><description>Hey Andrius, great to hear that you'll be coming to London -- would be good to meet up. Email me &lt;a href="mailto:tav@espians.com" rel="nofollow"&gt;tav@espians.com&lt;/a&gt; to fix up specific dates.&lt;br&gt;&lt;br&gt;As for Zenonas and Irena, unfortunately both of our spare rooms are currently taken -- some other time perhaps =(</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Thu, 12 Mar 2009 21:19:15 -0000</pubDate></item><item><title>Re: Logrep: A Simple Apache Log Analysis Script</title><link>http://asktav.disqus.com/logrep_a_simple_apache_log_analysis_script/#comment-7158085</link><description>Hey Marius,&lt;br&gt;&lt;br&gt;Because the format I use with single-dash followed by word and arbitrary parameters is rather cumbersome to do with optparse..&lt;br&gt;&lt;br&gt;I do like optparse and have been using it since the days of Optik, so highly recommend it for any public facing projects.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Thu, 12 Mar 2009 21:12:15 -0000</pubDate></item><item><title>Re: Update on Securing the Python Interpreter</title><link>http://asktav.disqus.com/update_on_securing_the_python_interpreter/#comment-7099766</link><description>Mark, I've fixed up safelite.py and made the documentation in this article now only support the explicit version of Namespace(). Thanks again!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Wed, 11 Mar 2009 10:24:42 -0000</pubDate></item><item><title>Re: Update on Securing the Python Interpreter</title><link>http://asktav.disqus.com/update_on_securing_the_python_interpreter/#comment-7099447</link><description>Hey Mark,&lt;br&gt;&lt;br&gt;Thank you for this!&lt;br&gt;&lt;br&gt;Sorry that I missed the discussion on e-lang -- wasn't aware that a similar approach was being explored on there! I see both were inspired by Ka-Ping Yee's post years ago...&lt;br&gt;&lt;br&gt;The Namespace function initially only supported the explicit:&lt;br&gt;&lt;br&gt;  Namespace(get_x=get_x, get_y=get_y)&lt;br&gt;  Namespace(get_x, get_y) # using __name__&lt;br&gt;&lt;br&gt;It still supports this format. But, as you rightly pointed out in that email, it quickly got tedious and I streamlined it ;p&lt;br&gt;&lt;br&gt;By removing the implicit format the attack you show goes away... and we go back to a pure capability base. Perhaps we could start from there?&lt;br&gt;&lt;br&gt;As for your concerns of efficiency in the email, in my C/Cython implementation of Namespace:&lt;br&gt;&lt;br&gt;  &lt;a href="http://github.com/tav/plexnet/blob/9f2ca9505e57be8e40d64b306ab3a49112a2cd73/source/plexnet/core/_capbase.pyx" rel="nofollow"&gt;http://github.com/tav/plexnet/blob/9f2ca9505e57...&lt;/a&gt;&lt;br&gt;&lt;br&gt;I use a trick from the PyPy guys and share the dictionary *keys* amongst the various Namespace objects. This is still nowhere near as efficient as Python classes, but it at least saves on memory -- which could be considerable when lots of similar Namespace objects are created.&lt;br&gt;&lt;br&gt;And speaking of PyPy, I'm increasingly tending towards using it as a showcase:&lt;br&gt;&lt;br&gt;* Fork the Python implementation on PyPy&lt;br&gt;* Add native support for object capability and some distributed features&lt;br&gt;* Bootstrap from that point and demonstrate the viability/utility of the ideas&lt;br&gt;&lt;br&gt;We could perhaps even take a leaf from Allen Short's C implementation of E (ecru) where he builds it as an extension type for Python -- allowing it to be bootstrapped off existing Python libraries...&lt;br&gt;&lt;br&gt;In an ideal case, the ideas would then get folded back into mainline Python -- but failing that, we would still have a Python-esque object-capability language that should be useful on its own...&lt;br&gt;&lt;br&gt;What do you think of this?&lt;br&gt;&lt;br&gt;-- &lt;br&gt;Thanks again for taking the time  to share your thoughts, tav</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Wed, 11 Mar 2009 10:11:34 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-7032954</link><description>Multi-line lambdas would be nice, but one step at a time =)&lt;br&gt;&lt;br&gt;And thanks for the blog article!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 09 Mar 2009 11:41:53 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-7027780</link><description>Thanks Joeri -- fixed.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 09 Mar 2009 08:57:26 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-7027761</link><description>Thanks for catching the mistake Mark -- fixed.&lt;br&gt;&lt;br&gt;I agree that {} and shorter code would be better. Unfortunately I haven't been able to come with a Pythonic way of doing that.&lt;br&gt;&lt;br&gt;This proposal was about trying to come with a Pythonic equivalent.&lt;br&gt;&lt;br&gt;As for a better language, I agree -- and perhaps I should just do that -- there would be a lot less resistance! =)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 09 Mar 2009 08:55:47 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-7027654</link><description>Thanks sjs, perhaps an accompanying decorator would help too?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 09 Mar 2009 08:47:57 -0000</pubDate></item><item><title>Re: Ruby-style Blocks in Python</title><link>http://asktav.disqus.com/ruby_style_blocks_in_python/#comment-7027412</link><description>Thanks Todd! That fits the bill quite nicely -- despite being slightly longer to type...&lt;br&gt;&lt;br&gt;Will update this proposal now.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tav</dc:creator><pubDate>Mon, 09 Mar 2009 08:34:06 -0000</pubDate></item></channel></rss>