{"id":643,"date":"2012-09-05T06:09:41","date_gmt":"2012-09-05T04:09:41","guid":{"rendered":"http:\/\/pocoproject.org\/blog\/?p=643"},"modified":"2012-09-05T06:24:36","modified_gmt":"2012-09-05T04:24:36","slug":"dynamic-c-presentation-at-silicon-valley-code-camp","status":"publish","type":"post","link":"https:\/\/pocoproject.org\/blog\/?p=643","title":{"rendered":"&#8220;Dynamic C++&#8221; presentation at Silicon Valley Code Camp"},"content":{"rendered":"<p>I will speak at the\u00a0<a href=\"http:\/\/www.siliconvalley-codecamp.com\/Default.aspx\" target=\"_blank\">Silicon\u00a0Valley Code Camp<\/a> (Oct 6-7 @ Foothill College in Los Altos, CA).<\/p>\n<p>The title of the speech is &#8220;Dynamic C++&#8221;; here is the description:<\/p>\n<blockquote>\n<p style=\"text-align: justify;\">The C++ static type system is beneficial in many ways; it can, however, also be a straitjacket. Is there a rationale for dynamic type layer on top of a statically typed language like C++? Given both historical (ANSI C union and void*, <a href=\"http:\/\/www.microsoft.com\/en-us\/default.aspx\" target=\"_blank\">Microsoft<\/a> COM <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms221627(v=vs.85).aspx\" target=\"_blank\">Variant<\/a>, boost::[<a href=\"http:\/\/www.boost.org\/doc\/libs\/1_51_0\/doc\/html\/variant.html\" target=\"_blank\">variant<\/a>, <a href=\"http:\/\/www.boost.org\/doc\/libs\/1_51_0\/doc\/html\/any.html\" target=\"_blank\">any<\/a>, <a href=\"http:\/\/www.boost.org\/doc\/libs\/1_51_0\/doc\/html\/boost_lexical_cast.html\" target=\"_blank\">lexical_cast<\/a>]) and recent (<a href=\" http:\/\/sourceforge.net\/projects\/steven-watanabe.u\/files\/\" target=\"_blank\">boost::type_erasure<\/a>, <a href=\"https:\/\/www.facebook.com\/\" target=\"_blank\">Facebook<\/a> <a href=\"https:\/\/github.com\/facebook\/folly\/blob\/master\/folly\/docs\/Dynamic.md\" target=\"_blank\">folly::dynamic<\/a>) development trends, the answer is a resounding &#8220;yes&#8221;.<\/p>\n<p style=\"text-align: justify;\">This presentation is based on Poco::Dynamic::Var (aka Poco::DynamicAny) &#8211; a dynamic-typing set of C++ classes; furthermore, it will show the simplicity and practical advantages of mapping ad-hoc generated data sets of unknown type, size, and structure to C++ data structures. Specifically, the presentation demonstrates how to:<\/p>\n<ol>\n<li>Execute a generic &#8220;SELECT * FROM Table&#8221;;<\/li>\n<li>Dynamically map returned data (row\/column count and types) to C++ data structures at runtime;<\/li>\n<li>Format the result as [XML, JSON, HTML, your-favorite-data-format-here];<\/li>\n<li>Stream the resulting formatted string to std::ostream compliant HTTP socket stream.<\/li>\n<\/ol>\n<p style=\"text-align: justify;\">Surely, this must be very complicated to do in C++, right? Not at all &#8211; we&#8217;ll demonstrate all of the above done with a <em>single line of code<\/em> and then peek under the hood to see where\/how does the magic happen. Portable? Of course. Scalable? You bet &#8211; it&#8217;s C++! The content of this presentation fits perfectly into modern AJAXian trends and we&#8217;ll prove it with an <a href=\"http:\/\/www.sencha.com\/products\/extjs\">ExtJS<\/a> example; it prompts re-thinking of the rationale for (a) employing dynamic languages on the server side or (b) polluting HTML with server-side code.<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">If you are in the neighborhood or interested enough to travel, register online (it&#8217;s free) and <a href=\"https:\/\/codecamp.pbworks.com\/w\/page\/16049620\/CodeCampSiliconValleyTravel09\">stop by<\/a> for some good time and interesting presentations\/discussions. Also, if interested in my speech, indicate it on the <a href=\"http:\/\/www.siliconvalley-codecamp.com\/Sessions.aspx?track=33\" target=\"_blank\">Code Camp website<\/a> so I can gauge what audience size to expect. See you there!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I will speak at the\u00a0Silicon\u00a0Valley Code Camp (Oct 6-7 @ Foothill College in Los Altos, CA). The title of the speech is &#8220;Dynamic C++&#8221;; here is the description: The C++ static type system is beneficial in many ways; it can, however, also be a straitjacket. Is there a rationale for dynamic type layer on top [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,8],"tags":[],"class_list":["post-643","post","type-post","status-publish","format-standard","hentry","category-events","category-news"],"_links":{"self":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=643"}],"version-history":[{"count":15,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/643\/revisions"}],"predecessor-version":[{"id":658,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/643\/revisions\/658"}],"wp:attachment":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}