{"id":1612,"date":"2009-04-16T12:39:57","date_gmt":"2009-04-16T02:39:57","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=1612"},"modified":"2009-04-16T12:39:57","modified_gmt":"2009-04-16T02:39:57","slug":"drizzle-low-hanging-fruit","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2009\/04\/16\/drizzle-low-hanging-fruit\/","title":{"rendered":"Drizzle low-hanging-fruit"},"content":{"rendered":"<p>We have an ongoing <a href=\"http:\/\/www.drizzle.org\">Drizzle<\/a> milestone called <a href=\"https:\/\/launchpad.net\/drizzle\/+milestone\/low-hanging-fruit\">low-hanging-fruit<\/a>. The idea is that when there&#8217;s something that\u00c2\u00a0 could be done, but we don&#8217;t quite have the time to do it immediately, we&#8217;ll add a <a href=\"https:\/\/launchpad.net\/drizzle\/+milestone\/low-hanging-fruit\">low-hanging-fruit<\/a> blueprint so that people looking to get a start on the codebase and contributing code to <a href=\"http:\/\/www.drizzle.org\">Drizzle<\/a> have a place to go to find things to do.<\/p>\n<p>Some of my personal favourites are:<\/p>\n<ul>\n<li><a href=\"https:\/\/blueprints.launchpad.net\/drizzle\/+spec\/code-cleanup-sprintf\">Remove sprintf<\/a><\/li>\n<li><a href=\"https:\/\/blueprints.launchpad.net\/drizzle\/+spec\/convert-functions-to-udfs\">Convert functions to UDF plugins<\/a><\/li>\n<li><a href=\"https:\/\/blueprints.launchpad.net\/drizzle\/+spec\/replace-macro-functions\">Replace macros with inline functions<\/a><\/li>\n<\/ul>\n<p>Also relatively low hanging fruit can be writing some plugins. Some simple plugin types include:<\/p>\n<ul>\n<li>Authentication<br \/>\nGot somewhere that you could authenticate against for connecting to a DB? Write a plugin for it! Current auth plugins are auth_http and auth_pam.<\/p>\n<ul>\n<li>Perhaps you want to authenticate against a central DB? checking in memcached first?<\/li>\n<li>Perhaps a htaccess style method<\/li>\n<\/ul>\n<\/li>\n<li>Functions<br \/>\nApply some function to a column. These are pretty simple to write (see md5, compress examples). Perhaps interfaces to encryption\/decryption? a hashing function?<\/p>\n<ul>\n<li>ROT13<\/li>\n<li>3DES<\/li>\n<li>AES<br \/>\nBonus points if you get any of these to use the T2000 crypto accellerator stuff<\/li>\n<li>ID3 tag decoding<\/li>\n<li>file type detection (well.. BLOB)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>So there&#8217;s a fair bit you can do to get started. Best of all, you can chat with the Drizzle developers next week at the MySQL Conference and Expo and Drizzle Developer Day.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have an ongoing Drizzle milestone called low-hanging-fruit. The idea is that when there&#8217;s something that\u00c2\u00a0 could be done, but we don&#8217;t quite have the time to do it immediately, we&#8217;ll add a low-hanging-fruit blueprint so that people looking to &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2009\/04\/16\/drizzle-low-hanging-fruit\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/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":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[76,75],"tags":[102,70,99,155],"class_list":["post-1612","post","type-post","status-publish","format-standard","hentry","category-code","category-drizzle-work-et-al","tag-conference","tag-drizzle","tag-launchpad","tag-low-hanging-fruit"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-q0","jetpack-related-posts":[{"id":1855,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/03\/17\/stored-proceduresfunctions-for-drizzle\/","url_meta":{"origin":1612,"position":0},"title":"Stored Procedures\/Functions for Drizzle","author":"Stewart Smith","date":"2010-03-17","format":false,"excerpt":"Previously, in \"Thoughts on Thoughts on Drizzle\" I theorized that one of the major reasons why we did not see lots of people jumping at stored procedures in MySQL was that it wasn't in their native language (for lack of a better term). We've seen External Language Stored Procedures for\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3345,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/05\/23\/mysql-vs-drizzle-plugin-api\/","url_meta":{"origin":1612,"position":1},"title":"MySQL vs Drizzle plugin APIs","author":"Stewart Smith","date":"2013-05-23","format":false,"excerpt":"There's a big difference in how plugins are treated in MySQL and how they are treated in Drizzle. The MySQL way has been to create a C API in front of the C++-like (I call it C- as it manages to take the worst of both worlds) internal \"API\". The\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3237,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/08\/mysql-modularity-are-we-there-yet\/","url_meta":{"origin":1612,"position":2},"title":"MySQL modularity, are we there yet?","author":"Stewart Smith","date":"2013-03-08","format":false,"excerpt":"MySQL is now over four times the size than it was with MySQL 3.23. This has not come in the shape of plugins. Have we improved modularity over time? I decided to take LoC count for plugins and storage engines (in the case of Drizzle, memory, myisam and innobase are\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1677,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/07\/29\/table-discovery-for-drizzle-take-2-now-merged\/","url_meta":{"origin":1612,"position":3},"title":"Table discovery for Drizzle (take 2, now merged!)","author":"Stewart Smith","date":"2009-07-29","format":false,"excerpt":"Table discovery looks a bit different from the previous time I blogged about it. Everything is now just hanging off the StorageEngine. If you want to not have dfe files on disk and just use your own data dictionary, you need to implement two things: A method to get table\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2323,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/17\/things-ive-done-in-drizzle\/","url_meta":{"origin":1612,"position":4},"title":"Things I&#8217;ve done in Drizzle","author":"Stewart Smith","date":"2011-03-17","format":false,"excerpt":"When writing my Dropping ACID: Eating Data in a Web 2.0 Cloud World talk for LCA2011 I came to the realisation that I had forgotten a lot of the things I had worked on in MySQL and MySQL Cluster. So, as a bit of a retrospective as part of the\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1738,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/10\/14\/return-of-the-top-5-mysql-wishlist-and-looking-at-drizzle\/","url_meta":{"origin":1612,"position":5},"title":"Return of the &#8220;Top 5 MySQL Wishlist&#8221; and looking at Drizzle","author":"Stewart Smith","date":"2009-10-14","format":false,"excerpt":"It's coming up on a year since I started working full time on Drizzle. So, I got a bit reflective... Have we done things that I (and others) really wanted done? Back in 2007, I wrote my top 5 wishlist for the MySQL Server. I am not going to pretend\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=1612"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1612\/revisions"}],"predecessor-version":[{"id":1613,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1612\/revisions\/1613"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=1612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=1612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=1612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}