{"id":6203,"date":"2013-04-09T08:03:06","date_gmt":"2013-04-09T06:03:06","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=6203"},"modified":"2013-04-09T08:07:49","modified_gmt":"2013-04-09T06:07:49","slug":"common_schema-2-0-0-alpha-rdebug-gpl","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/common_schema-2-0-0-alpha-rdebug-gpl","title":{"rendered":"common_schema 2.0.0-alpha: rdebug, GPL"},"content":{"rendered":"<p>A new release for <a href=\"https:\/\/code.google.com\/p\/common-schema\/\">common_schema<\/a>: an alpha version of <strong><a href=\"http:\/\/common-schema.googlecode.com\/svn\/trunk\/common_schema\/doc\/html\/rdebug.html\">rdebug<\/a>: MySQL Debugger and Debugging API<\/strong> is now included with <em>common_schema<\/em>.<\/p>\n<p>With a different license in mind for <em>rdebug<\/em>, <em>common_schema<\/em> changes license to GPL (2 or above).<\/p>\n<p><em>common_schema 2.0<\/em> is ready for <a href=\"http:\/\/code.google.com\/p\/common-schema\/downloads\/list\">download<\/a>. All things <strong>rdebug<\/strong>, it is alpha &#8212; otherwise it&#8217;s a stable release.<\/p>\n<h4>rdebug<\/h4>\n<p>I&#8217;m very happy to release this alpha version of <em>rdebug<\/em>, and urge everyone to try it out.<\/p>\n<p>The idea is to have an open, free, server side debugger and debugging API for MySQL stored routines. To elaborate:<\/p>\n<ul>\n<li>It&#8217;s server side by that it&#8217;s implemented by stored routines. Not by a connector; not an emulator; not a GUI tool hack. The entire functionality lies within common_schema, a schema in your server.<\/li>\n<li>It&#8217;s a debugger: you can debug your own stored routines (with limitations)<\/li>\n<li>It&#8217;s a <a href=\"http:\/\/common-schema.googlecode.com\/svn\/trunk\/common_schema\/doc\/html\/rdebug_api.html\"><strong>debugging API<\/strong><\/a>: there&#8217;s a distinct specification and a set of calls which makes for a debugging process<\/li>\n<li>It&#8217;s open since the source code is yours to browse.<\/li>\n<li>It&#8217;s free as in free beer.<\/li>\n<li>It&#8217;s free as it makes you independent of a specific debugger. It provides an API that anyone can use. You can run the API yourself from the command line; or plugins for your favorite GUI editor can be developed to use this API.<\/li>\n<\/ul>\n<p>On a separate blog post I will take you to a <em>rdebug<\/em> test drive.<\/p>\n<p>As always, nothing is released before extensive <a href=\"http:\/\/common-schema.googlecode.com\/svn\/trunk\/common_schema\/doc\/html\/rdebug.html\">documentation<\/a> is in place.<\/p>\n<p>I&#8217;d love to get input on this.<!--more--><\/p>\n<h4>GPL<\/h4>\n<p><em>common_schema<\/em> &lt; <strong>2.0<\/strong> was released under the BSD license, which is less restrictive. I was pondering the BSD license for a couple years now, and with the arrival of <em>rdebug<\/em> have decided to switch to GPL. I&#8217;ve been through this thinking of change of license in other projects of mine; am generally agreeing that best not to change licensing throughout lifetime. I actually do see GPL as promoting open source software better than BSD, and with all the issues around GPL this actually means something to me. I write open source; I love people using it; I love people extending it; I want to be re-released as open source, or I want better control of the code.<\/p>\n<p>So this turns out to be something that is important to me, and just before <em>common_schema<\/em> takes the world in storm (<strong>212<\/strong> downloads today, <strong>212,000,000<\/strong> tomorrow), I want to have this settled. If no storm comes, well, I&#8217;ll have up to <strong>212<\/strong> people banging on my door (I provide free coffee).<\/p>\n<h4>Text routines<\/h4>\n<p>Two text routines are added:<\/p>\n<ul>\n<li><a href=\"http:\/\/common-schema.googlecode.com\/svn\/trunk\/common_schema\/doc\/html\/replace_sections.html\"><strong>replace_sections()<\/strong><\/a>: replace a text given a from-to combination, and a replacement string, which could include a back-reference. For example:<\/li>\n<\/ul>\n<blockquote>\n<pre>mysql&gt; select replace_sections(<strong>'The <span style=\"color: #000080;\">&lt;b&gt;<\/span>quick<span style=\"color: #000080;\">&lt;\/b&gt;<\/span> brown <span style=\"color: #000080;\">&lt;b&gt;<\/span>fox<span style=\"color: #000080;\">&lt;\/b&gt;<\/span>'<\/strong>, \r\n        <strong>'<span style=\"color: #000080;\">&lt;b&gt;<\/span>'<\/strong>, <span style=\"color: #000080;\"><strong>'&lt;\/b&gt;'<\/strong><\/span>, \r\n        <strong><span style=\"color: #800000;\">'&lt;span&gt;\\\\0&lt;\/span&gt;'<\/span><\/strong>) as result;\r\n+-----------------------------------------------+\r\n| result                                        |\r\n+-----------------------------------------------+\r\n| The <span style=\"color: #800000;\">&lt;span&gt;quick&lt;\/span&gt;<\/span> brown <span style=\"color: #800000;\">&lt;span&gt;fox&lt;\/span&gt;<\/span> |\r\n+-----------------------------------------------+<\/pre>\n<\/blockquote>\n<ul>\n<li><a href=\"http:\/\/common-schema.googlecode.com\/svn\/trunk\/common_schema\/doc\/html\/hexcode_text.html\"><strong>hexcode_text()<\/strong><\/a>: a convenience routine which shows a beautified hex-code of a given text. I get to need it when using UNICODE characters which are hard to detect, are visually identical to other characters, or are copied from MS Word.<\/li>\n<\/ul>\n<blockquote>\n<pre>mysql&gt; <strong>call hexcode_text('the quick brown fox jumps over the lazy dog');<\/strong>\r\n+-----------------------------------------------------------------------------------+\r\n| &gt;0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f   0 1 2 3 4 5 6 7 8 9 a b c d e f |\r\n+-----------------------------------------------------------------------------------+\r\n| 74 68 65 20 71 75 69 63 6B 20 62 72 6F 77 6E 20   t h e   q u i c k   b r o w n   |\r\n| 66 6F 78 20 6A 75 6D 70 73 20 6F 76 65 72 20 74   f o x   j u m p s   o v e r   t |\r\n| 68 65 20 6C 61 7A 79 20 64 6F 67                  h e   l a z y   d o g           |\r\n+-----------------------------------------------------------------------------------+<\/pre>\n<\/blockquote>\n<h4>Get it<\/h4>\n<p><a href=\"https:\/\/code.google.com\/p\/common-schema\/\">Download <em>common_schema<\/em> here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A new release for common_schema: an alpha version of rdebug: MySQL Debugger and Debugging API is now included with common_schema. With a different license in mind for rdebug, common_schema changes license to GPL (2 or above). common_schema 2.0 is ready for download. All things rdebug, it is alpha &#8212; otherwise it&#8217;s a stable release. rdebug [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5],"tags":[67,120,57,99,59,100],"class_list":["post-6203","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-common_schema","tag-development","tag-open-source","tag-rdebug","tag-stored-routines","tag-tools"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-1C3","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/6203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/comments?post=6203"}],"version-history":[{"count":17,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/6203\/revisions"}],"predecessor-version":[{"id":6254,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/6203\/revisions\/6254"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=6203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=6203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=6203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}