{"id":322,"date":"2004-12-20T15:48:52","date_gmt":"2004-12-20T05:48:52","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=322"},"modified":"2004-12-20T15:48:52","modified_gmt":"2004-12-20T05:48:52","slug":"wish-for-a-useful-tool","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2004\/12\/20\/wish-for-a-useful-tool\/","title":{"rendered":"wish for a useful tool"},"content":{"rendered":"<p>I&#8217;ve started to draw up (by hand) some UML diagrams of parts of the cluster code &#8211; I figure this way I can better learn (and remember) what belongs to what and what has what.<\/p>\n<p>This really useful where the question comes up of &#8220;I need a NdbMgmHandle.. now where are we storing one of those?&#8221;<\/p>\n<p>In the past, cscope has been a hell of a useful tool for all this &#8211; but it seems to fall down on C++&#8230; at least through the emacs mode i&#8217;m so fond of. There was also a similar in house tool at SGI which I was incredibly fond of (I don&#8217;t think a single day went by where I didn&#8217;t use it) &#8211; maybe I&#8217;ll have to bug people to release it as open source :)<\/p>\n<p>I was thinking a nice perl script could produce some Dia XML (for a bit of by-hand processing i guess). Just chuck it a bunch of header files (with the class definitions in them) and it can sort out a graph of what has what etc.<\/p>\n<p>Maybe Dia XML could be a bit complex for the first go &#8211; but hey, even some kind of web thingy could be useful.<\/p>\n<p>I want a quick-glance image, not a pour through everything or grep.<\/p>\n<p>Although I do wish cscope was a bit less broken &#8211; it can really get royally confused on some (quite valid) source.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve started to draw up (by hand) some UML diagrams of parts of the cluster code &#8211; I figure this way I can better learn (and remember) what belongs to what and what has what. This really useful where the &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2004\/12\/20\/wish-for-a-useful-tool\/\">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_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},"jetpack_post_was_ever_published":false},"categories":[14],"tags":[],"class_list":["post-322","post","type-post","status-publish","format-standard","hentry","category-mysql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-5c","jetpack-related-posts":[{"id":1736,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/10\/13\/random-query-generator-added-to-drizzle-automation\/","url_meta":{"origin":322,"position":0},"title":"Random Query Generator added to Drizzle Automation","author":"Stewart Smith","date":"2009-10-13","format":false,"excerpt":"As Lee announced, we have the Random Query Generator added to Drizzle Automation. It always amazed me that we were lacking such a fundamental testing tool for MySQL for all that time. I always found the similar (NDB API) tools for MySQL Cluster (NDB) to be really, really useful when\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":4076,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/07\/12\/using-smatch-static-analysis-on-openpower-opal-firmware\/","url_meta":{"origin":322,"position":1},"title":"Using Smatch static analysis on OpenPOWER OPAL firmware","author":"Stewart Smith","date":"2016-07-12","format":false,"excerpt":"For Skiboot, I'm always looking at new automated systems to find bugs in the code. A little while ago, I read about the Smatch tool developed by some folks at Oracle (they also wrote about using it on the Linux kernel). I was eager to try it with skiboot to\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":4397,"url":"https:\/\/www.flamingspork.com\/blog\/2018\/08\/22\/pwnm-sync-synchronizing-patchwork-and-notmuch\/","url_meta":{"origin":322,"position":2},"title":"pwnm-sync: Synchronizing Patchwork and Notmuch","author":"Stewart Smith","date":"2018-08-22","format":false,"excerpt":"One of the core bits of infrastructure I use as a maintainer is Patchwork (I wrote about making it faster recently). Patchwork tracks patches sent to a mailing list, allowing me as a maintainer to track the state of them (New|Under Review|Changes Requested|Accepted etc), combine them into patch bundles, look\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2018\/08\/Screenshot-from-2018-08-22-17-28-25-1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":200,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/12\/30\/200th-entry\/","url_meta":{"origin":322,"position":3},"title":"200th entry","author":"Stewart Smith","date":"2003-12-30","format":false,"excerpt":"wow, real interesting - check the care factor. well, at least i've stuck with it - so yay me. and it's pretty close to the new year too - if only i could be bothered going and working out when the first entry was... spending a lot of time at\u2026","rel":"","context":"In &quot;life, the universe and everything&quot;","block_context":{"text":"life, the universe and everything","link":"https:\/\/www.flamingspork.com\/blog\/category\/life-the-universe-and-everything\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1648,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/05\/19\/is-bit_length-useful\/","url_meta":{"origin":322,"position":4},"title":"Is BIT_LENGTH() useful?","author":"Stewart Smith","date":"2009-05-19","format":false,"excerpt":"mysql [localhost] {msandbox} ((none)) > select length(crc32(3)) * 8, bit_length(crc32(3)); +----------------------+----------------------+ | length(crc32(3)) * 8 | bit_length(crc32(3)) | +----------------------+----------------------+ | 80 | 80 | +----------------------+----------------------+ 1 row in set (0.00 sec)","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":1807,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/02\/23\/on-presenting\/","url_meta":{"origin":322,"position":5},"title":"on presenting","author":"Stewart Smith","date":"2010-02-23","format":false,"excerpt":"This is totally not confined to at-work presentations. The number of sessions I have sat through that could have taken 5 minutes instead of 20,30,40 or even 60 is amazing. Remember: I have not flown half way around the globe to see you read. I have come to hear a\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"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\/322","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=322"}],"version-history":[{"count":0,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/322\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}