<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for selena deckelmann &#124; selena deckelmann</title>
	<atom:link href="http://www.chesnok.com/daily/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chesnok.com/daily</link>
	<description>Tending The Garden: a blog about postgres, open source and the web.</description>
	<lastBuildDate>Wed, 22 May 2013 18:53:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>Comment on About high school computer science teachers by Hélène Martin</title>
		<link>http://www.chesnok.com/daily/2013/03/10/about-high-school-computer-science-teachers/comment-page-1/#comment-38411</link>
		<dc:creator>Hélène Martin</dc:creator>
		<pubDate>Wed, 22 May 2013 18:53:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4716#comment-38411</guid>
		<description><![CDATA[For anyone interested in K-12 computing education, I highly recommend getting connected with a local Computer Science Teachers Association chapter!  Contacts for different regional chapters can be found on &lt;a href=&quot;http://csta.acm.org/About/sub/CSTAChapters.html&quot; rel=&quot;nofollow&quot;&gt;the CSTA website&lt;/a&gt;.

Since you&#039;re in Oregon, I imagine you&#039;ve probably connected with TechStart, but just in case, they have a very well-regarded &lt;a href=&quot;http://www.techstart.org/superquest&quot; rel=&quot;nofollow&quot;&gt;professional development series&lt;/a&gt; that brings together lots of fantastic computing instructors.
]]></description>
		<content:encoded><![CDATA[<p>For anyone interested in K-12 computing education, I highly recommend getting connected with a local Computer Science Teachers Association chapter!  Contacts for different regional chapters can be found on <a href="http://csta.acm.org/About/sub/CSTAChapters.html" rel="nofollow">the CSTA website</a>.</p>
<p>Since you&#8217;re in Oregon, I imagine you&#8217;ve probably connected with TechStart, but just in case, they have a very well-regarded <a href="http://www.techstart.org/superquest" rel="nofollow">professional development series</a> that brings together lots of fantastic computing instructors.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Migrations with Alembic: a lightspeed tour by selena</title>
		<link>http://www.chesnok.com/daily/2013/05/17/migrations-with-alembic-a-lightspeed-tour/comment-page-1/#comment-38315</link>
		<dc:creator>selena</dc:creator>
		<pubDate>Tue, 21 May 2013 21:43:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4761#comment-38315</guid>
		<description><![CDATA[&lt;p&gt;So regarding rollback of an upgraded UDF -- the reason this is an issue is that once you check out a new version of the UDF in git the old version is no longer visible. And you might say &quot;well, just checkout the old git version to revert!&quot;&lt;/p&gt;

&lt;p&gt;But that&#039;s not possible.&lt;/p&gt;

&lt;p&gt;Because... we are talking about a deployed version of code that is shipped to the database -- the same version of the code that is shipped to every other system in our 50+ node environment.&lt;/p&gt;

&lt;p&gt;In order to get access to the old UDF versions that are in revision control, I&#039;d need to find a way to get a perviously deployed version of the application.&lt;/p&gt;

&lt;p&gt;The workaround is to keep an old version of the UDF stashed in the database -- under an assumed name, basically :)&lt;/p&gt;

&lt;p&gt;Anyway, clearly I should write more about this problem and explain exactly what I mean. It is a complicated issue and one that not a lot of people ever even run into at this point.&lt;/p&gt;

&lt;p&gt;But, as more people chose to use things like PLV8, I think it will be more important to have a good workflow documented.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>So regarding rollback of an upgraded UDF &#8212; the reason this is an issue is that once you check out a new version of the UDF in git the old version is no longer visible. And you might say &#8220;well, just checkout the old git version to revert!&#8221;</p>
<p>But that&#8217;s not possible.</p>
<p>Because&#8230; we are talking about a deployed version of code that is shipped to the database &#8212; the same version of the code that is shipped to every other system in our 50+ node environment.</p>
<p>In order to get access to the old UDF versions that are in revision control, I&#8217;d need to find a way to get a perviously deployed version of the application.</p>
<p>The workaround is to keep an old version of the UDF stashed in the database &#8212; under an assumed name, basically <img src='http://www.chesnok.com/daily/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, clearly I should write more about this problem and explain exactly what I mean. It is a complicated issue and one that not a lot of people ever even run into at this point.</p>
<p>But, as more people chose to use things like PLV8, I think it will be more important to have a good workflow documented.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Migrations with Alembic: a lightspeed tour by Adrian Klaver</title>
		<link>http://www.chesnok.com/daily/2013/05/17/migrations-with-alembic-a-lightspeed-tour/comment-page-1/#comment-38259</link>
		<dc:creator>Adrian Klaver</dc:creator>
		<pubDate>Tue, 21 May 2013 01:53:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4761#comment-38259</guid>
		<description><![CDATA[Interesting.  One idea, one question

Idea:
Your description of wrestling with UDF diffs got me thinking about something I ran across while digging into Mercurial, &lt;a href=&quot;http://mercurial.selenic.com/wiki/MqExtension&quot; rel=&quot;nofollow&quot;&gt;Mq&lt;/a&gt;, which in turn is built on &lt;a href=&quot;http://savannah.nongnu.org/projects/quilt&quot; rel=&quot;nofollow&quot;&gt;Quilt&lt;/a&gt;. At this point I have only surveyed from the 10,000 ft level. As I understand it they both allow one to maintain a queue of patches in parallel with the commit history and  apply, change and rollback patches as needed. With the option of  applying the patches as commits and making them a permanent part of the history at the time of your choosing. Not sure whether this would work in your case, but I am now motivated to check it out for my own use.

Question:
I am not sure about the drop the old function  statement.. Where are you dropping the function?  Old and new in the version controlled code is  a point of view issue, i.e what revision you are on. In the database the function would be the new version if the migrations had been applied. Now it is entirely possible I am being dense and am missing something obvious.
]]></description>
		<content:encoded><![CDATA[<p>Interesting.  One idea, one question</p>
<p>Idea:<br />
Your description of wrestling with UDF diffs got me thinking about something I ran across while digging into Mercurial, <a href="http://mercurial.selenic.com/wiki/MqExtension" rel="nofollow">Mq</a>, which in turn is built on <a href="http://savannah.nongnu.org/projects/quilt" rel="nofollow">Quilt</a>. At this point I have only surveyed from the 10,000 ft level. As I understand it they both allow one to maintain a queue of patches in parallel with the commit history and  apply, change and rollback patches as needed. With the option of  applying the patches as commits and making them a permanent part of the history at the time of your choosing. Not sure whether this would work in your case, but I am now motivated to check it out for my own use.</p>
<p>Question:<br />
I am not sure about the drop the old function  statement.. Where are you dropping the function?  Old and new in the version controlled code is  a point of view issue, i.e what revision you are on. In the database the function would be the new version if the migrations had been applied. Now it is entirely possible I am being dense and am missing something obvious.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Migrations with Alembic: a lightspeed tour by selena</title>
		<link>http://www.chesnok.com/daily/2013/05/17/migrations-with-alembic-a-lightspeed-tour/comment-page-1/#comment-38172</link>
		<dc:creator>selena</dc:creator>
		<pubDate>Sun, 19 May 2013 18:51:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4761#comment-38172</guid>
		<description><![CDATA[&lt;p&gt;That&#039;s correct. My choice was to create a subdirectory that has one file per UDF. So, when we change UDFs, we get diffs that are useful. And I write a simple loop in a migration to capture loading the change. The unfortunate thing here is that rollbacks are slightly more complicated. To get the old version of the UDF, you&#039;d need to check out an older version of the repo. Our deployment system actually could accommodate this -- I&#039;d just need a symlink to the previously deployed version. There&#039;s some devil-in-details there... Someone suggested that we just rename old UDFs based on the hash of the revision. I like that and may try it out. Still need to figure out how and when to drop the old functions once we&#039;ve confirmed everything is working.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>That&#8217;s correct. My choice was to create a subdirectory that has one file per UDF. So, when we change UDFs, we get diffs that are useful. And I write a simple loop in a migration to capture loading the change. The unfortunate thing here is that rollbacks are slightly more complicated. To get the old version of the UDF, you&#8217;d need to check out an older version of the repo. Our deployment system actually could accommodate this &#8212; I&#8217;d just need a symlink to the previously deployed version. There&#8217;s some devil-in-details there&#8230; Someone suggested that we just rename old UDFs based on the hash of the revision. I like that and may try it out. Still need to figure out how and when to drop the old functions once we&#8217;ve confirmed everything is working.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Migrations with Alembic: a lightspeed tour by Adrian Klaver</title>
		<link>http://www.chesnok.com/daily/2013/05/17/migrations-with-alembic-a-lightspeed-tour/comment-page-1/#comment-38086</link>
		<dc:creator>Adrian Klaver</dc:creator>
		<pubDate>Sat, 18 May 2013 20:07:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4761#comment-38086</guid>
		<description><![CDATA[I would be interested in a longer talk/post on Alembic. I  have started reading up on it , like what I see and could use a primer.  If I follow correctly the above, UDFs are not currently covered by Alembic, so they need to be dealt with separately?
]]></description>
		<content:encoded><![CDATA[<p>I would be interested in a longer talk/post on Alembic. I  have started reading up on it , like what I see and could use a primer.  If I follow correctly the above, UDFs are not currently covered by Alembic, so they need to be dealt with separately?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TIL: Formatting, search_path and colorcolumn by Simon</title>
		<link>http://www.chesnok.com/daily/2013/05/10/til-formatting-search_path-and-colorcolumn/comment-page-1/#comment-37549</link>
		<dc:creator>Simon</dc:creator>
		<pubDate>Mon, 13 May 2013 01:50:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4793#comment-37549</guid>
		<description><![CDATA[Regarding the format() thing, it&#039;s basically old vs new.  The % operator is the way Python used to do this way back - it&#039;s a convenient syntax most of the time (apart from how easy it is to accidentally pass a string as a parameter list, instead of a tuple containing a string).

But it&#039;s deprecated in favor of  the format function... not sure why, but  I&#039;d guess it&#039;s to avoid having special syntax unnecessarily... much as how in Python3, the print statement became a method.
]]></description>
		<content:encoded><![CDATA[<p>Regarding the format() thing, it&#8217;s basically old vs new.  The % operator is the way Python used to do this way back &#8211; it&#8217;s a convenient syntax most of the time (apart from how easy it is to accidentally pass a string as a parameter list, instead of a tuple containing a string).</p>
<p>But it&#8217;s deprecated in favor of  the format function&#8230; not sure why, but  I&#8217;d guess it&#8217;s to avoid having special syntax unnecessarily&#8230; much as how in Python3, the print statement became a method.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TIL: Formatting, search_path and colorcolumn by selena</title>
		<link>http://www.chesnok.com/daily/2013/05/10/til-formatting-search_path-and-colorcolumn/comment-page-1/#comment-37445</link>
		<dc:creator>selena</dc:creator>
		<pubDate>Sat, 11 May 2013 21:35:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4793#comment-37445</guid>
		<description><![CDATA[&lt;p&gt;Yes! I have tended to err on the side of manual adjustment for fixing past sins, though.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Yes! I have tended to err on the side of manual adjustment for fixing past sins, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TIL: Formatting, search_path and colorcolumn by selena</title>
		<link>http://www.chesnok.com/daily/2013/05/10/til-formatting-search_path-and-colorcolumn/comment-page-1/#comment-37444</link>
		<dc:creator>selena</dc:creator>
		<pubDate>Sat, 11 May 2013 21:34:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4793#comment-37444</guid>
		<description><![CDATA[&lt;p&gt;We were using shell scripts and raw SQL files. There&#039;s still some raw SQL involved for the user-defined functions. However, loading of newly defined functions is managed by alembic.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>We were using shell scripts and raw SQL files. There&#8217;s still some raw SQL involved for the user-defined functions. However, loading of newly defined functions is managed by alembic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TIL: Formatting, search_path and colorcolumn by Roland Smith</title>
		<link>http://www.chesnok.com/daily/2013/05/10/til-formatting-search_path-and-colorcolumn/comment-page-1/#comment-37381</link>
		<dc:creator>Roland Smith</dc:creator>
		<pubDate>Sat, 11 May 2013 06:49:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4793#comment-37381</guid>
		<description><![CDATA[Are you aware that vim has the possibility to do &lt;a href=&quot;http://vim.wikia.com/wiki/Automatic_word_wrapping&quot; rel=&quot;nofollow&quot;&gt;automatic word wrapping&lt;/a&gt;?
]]></description>
		<content:encoded><![CDATA[<p>Are you aware that vim has the possibility to do <a href="http://vim.wikia.com/wiki/Automatic_word_wrapping" rel="nofollow">automatic word wrapping</a>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TIL: Formatting, search_path and colorcolumn by Joe</title>
		<link>http://www.chesnok.com/daily/2013/05/10/til-formatting-search_path-and-colorcolumn/comment-page-1/#comment-37365</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Sat, 11 May 2013 04:43:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.chesnok.com/daily/?p=4793#comment-37365</guid>
		<description><![CDATA[&quot;I’ve switched to using SQLAlchemy, and also alembic for migrations.&quot;

Curious: from what did you switch?
]]></description>
		<content:encoded><![CDATA[<p>&#8220;I’ve switched to using SQLAlchemy, and also alembic for migrations.&#8221;</p>
<p>Curious: from what did you switch?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic page generated in 0.256 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-05-22 14:35:12 -->

<!-- Compression = gzip -->