<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>altuure - Medium</title><link rel="canonical" href="https://medium.com/altuure"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/altuure"><meta name="robots" content="index,follow"><meta name="title" content="altuure - Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="Continous Developer Blog."><meta name="keywords" content="SOFTWARE DEVELOPMENT, JAVA"><meta name="theme-color" content="#000000"><meta property="og:title" content="altuure – Medium"><meta property="twitter:title" content="altuure – Medium"><meta property="og:url" content="https://medium.com/altuure"><meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*j77IXXuj6pdkTs0Hk8WhYw.jpeg"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Continous Developer Blog."><meta name="twitter:description" content="Continous Developer Blog."><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*j77IXXuj6pdkTs0Hk8WhYw.jpeg"><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta property="medium-com:creator" content="https://medium.com/@altuure"><meta name="twitter:creator" content="@altuure"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://altuure"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://altuure"><meta property="al:android:url" content="medium://altuure"><meta property="al:web:url" content="https://medium.com/altuure"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/altuure" /><script type="application/ld+json">{"@context": "http://schema.org", "@graph": [{"@type": "WebSite", "url": "https:\/\/medium.com", "name": "Medium", "alternateName": "Medium is a community of readers and writers offering unique perspectives on ideas large and small."},{"@type": "Organization", "url": "https:\/\/medium.com\/altuure", "name": "altuure"}]}</script><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.YGZTKjb888st467FxWEwhw.12.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js"></script><![endif]--><link rel="icon" href="https://miro.medium.com/1*m-R_BkNf1Qjr1YbyOIJY2w.png" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*j77IXXuj6pdkTs0Hk8WhYw.jpeg"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*j77IXXuj6pdkTs0Hk8WhYw.jpeg"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*j77IXXuj6pdkTs0Hk8WhYw.jpeg"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*j77IXXuj6pdkTs0Hk8WhYw.jpeg"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class="  v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--logoMonogramUnbound svgIcon--25px"><svg class="svgIcon-use"  height="25" viewBox="0 0 1043.63 592.71"><g data-name="Layer 2"><g data-name="Layer 1"><path d="M588.67 296.36c0 163.67-131.78 296.35-294.33 296.35S0 460 0 296.36 131.78 0 294.34 0s294.33 132.69 294.33 296.36"/><path d="M911.56 296.36c0 154.06-65.89 279-147.17 279s-147.17-124.94-147.17-279 65.88-279 147.16-279 147.17 124.9 147.17 279"/><path d="M1043.63 296.36c0 138-23.17 249.94-51.76 249.94s-51.75-111.91-51.75-249.94 23.17-249.94 51.75-249.94 51.76 111.9 51.76 249.94"/></g></g></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/altuure%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton"   href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Faltuure&amp;source=--------------------------nav_reg&amp;operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/altuure" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton"   href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Faltuure&amp;source=--------------------------nav_reg&amp;operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/altuure" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div><div class="collectionHeader js-collectionHeaderContainer u-relative collectionHeader--layoutLarge collectionHeader--alignmentLeft collectionHeader--withoutLogo collectionHeader--withoutBackground collectionHeader--colorBehaviorSubtle collectionHeader--withoutNavigation collectionHeader--editorLayoutTitle is-modeView"><div class="collectionHeader-aspectRatioTable"><div class="collectionHeader-aspectRatioContent u-backgroundSizeCover js-collectionHeaderBackground"><div class="collectionHeader-overlayBackground u-height100vh"></div><header class="collectionHeader-heroAndInlineNav u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto u-foreground js-collectionHeader"><div class="collectionHeader-hero js-collectionHeaderHero u-clearfix"><div class="collectionHeader-heroInner"><div class="collectionHeader-logo js-collectionHeaderLogo" style=""><a class="link u-baseColor--link"   href="https://medium.com/altuure" title="Go to altuure" aria-label="Go to altuure"><div class="u-relative u-marginAuto"><div style="padding-bottom: 75%"></div><img class="collectionHeader-logoImage js-collectionHeaderLogoImage"  /></div></a></div><div class="collectionHeader-nameAndDescription"><a class="link link--noUnderline u-baseColor--link"   href="https://medium.com/altuure" title="Go to altuure" aria-label="Go to altuure"><h1 class="collectionHeader-name js-collectionName u-foreground u-baseColor--textDark u-paddingBottom4 u-lineHeightTightest u-contentSansBold u-fontSize40 u-xs-fontSize32">altuure</h1></a><h2 class="collectionHeader-description js-collectionDescription u-foreground u-baseColor--textNormal u-contentSansRegular u-fontSize24 u-xs-fontSize18">yyy</h2></div></div></div></header></div><div class="collectionHeader-aspectRatioCell"><div class="collectionHeader-aspectRatioFullWidth"></div></div></div><div class="collectionHeader-blockNav"><div class="u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto"><nav class="collectionHeader-nav u-clearfix js-collectionHeaderNav u-lineHeight40 u-overflowHiddenY"><div class="buttonSet u-flex1 u-noWrap u-overflowX u-paddingBottom100 u-xs-marginRight15"><label class="button button--small button--chromeless button--withIcon button--withSvgIcon inputGroup u-sm-hide metabar-predictiveSearch u-baseColor--buttonNormal u-baseColor--placeholderNormal" title="Search altuure"><span class="svgIcon svgIcon--search svgIcon--25px u-baseColor--iconLight"><svg class="svgIcon-use" width="25" height="25" ><path d="M20.067 18.933l-4.157-4.157a6 6 0 10-.884.884l4.157 4.157a.624.624 0 10.884-.884zM6.5 11c0-2.62 2.13-4.75 4.75-4.75S16 8.38 16 11s-2.13 4.75-4.75 4.75S6.5 13.62 6.5 11z"/></svg></span><input class="js-predictiveSearchInput textInput textInput--rounded textInput--darkText u-baseColor--textNormal textInput--transparent" type="search" placeholder="Search altuure" required="true" data-collection-id="3c59c0e74a97" /></label><a class="button button--chromeless is-touchIconBlackPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle"   href="https://twitter.com/altuure" title="Visit “altuure” on Twitter" aria-label="Visit “altuure” on Twitter" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitterFilled svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" ><path d="M22.31 4.305a8.48 8.48 0 01-2.684 1.073A4.245 4.245 0 0016.486 4a4.293 4.293 0 00-4.293 4.29c0 .34.037.669.077.997a12.199 12.199 0 01-8.814-4.521 4.805 4.805 0 00-.613 2.141c.033 1.514.79 2.83 1.916 3.594a4.13 4.13 0 01-1.913-.542.185.185 0 000 .074c-.005 2.055 1.476 3.79 3.446 4.21-.37.073-.746.122-1.15.147-.266-.025-.535-.05-.767-.074.517 1.686 2.101 2.917 3.988 2.99a9.028 9.028 0 01-5.366 1.834L2 19.08A12.258 12.258 0 008.59 21c7.886 0 12.203-6.547 12.185-12.184a4.103 4.103 0 000-.616 8.057 8.057 0 002.147-2.227 7.612 7.612 0 01-2.451.69 4.092 4.092 0 001.838-2.376"/></svg></span></span></a></div><div class="buttonSet u-textAlignRight u-marginLeft18 u-flex0 u-noWrap"><button class="button button--primary button--smallest u-noUserSelect button--withChrome u-accentColor--buttonNormal js-relationshipButton is-smallPill"  data-action="sign-up-prompt" data-sign-in-action="toggle-follow-collection" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/collection/altuure" data-action-source="pub_header----3c59c0e74a97----------------------follow_pub" data-collection-id="3c59c0e74a97"><span class="button-label  js-buttonLabel">Follow</span></button></div></nav></div></div></div><div class="u-marginBottom40 js-collectionStream"><div class="streamItem streamItem--section js-streamItem"><div class="u-clearfix u-maxWidth1032 u-marginAuto"><div class="row u-marginTop30 u-marginBottom20 u-sm-marginLeft20 u-sm-marginRight20 u-xs-marginTop0 u-xs-marginRight0 u-xs-marginLeft0"><div class="col u-size8of12 u-xs-size12of12"><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------0-----------------------" data-post-id="3d53cb9cf653"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------0-----------------------" data-action="show-user-card" data-action-source="collection_home---6------0-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/how-to-install-postgresql-9-2-on-ubuntu-12-3d53cb9cf653?source=collection_home---6------0-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/how-to-install-postgresql-9-2-on-ubuntu-12-3d53cb9cf653?source=collection_home---6------0-----------------------" data-action-source="preview-listing" ><time datetime="2012-10-02T11:43:18.000Z">Oct 2, 2012</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/how-to-install-postgresql-9-2-on-ubuntu-12-3d53cb9cf653?source=collection_home---6------0-----------------------" data-action-source="collection_home---6------0-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="2455" id="2455" class="graf graf--h3 graf--leading graf--title">How to Install PostgreSQL 9.2 on Ubuntu 12</h3><p name="2e1e" id="2e1e" class="graf graf--p graf-after--h3 graf--trailing"><code class="markup--code markup--p-code">sudo apt-get install python-software-properties<br>sudo add-apt-repository ppa:pitti/postgresql<br>sudo apt-get update<br>sudo apt-get install postgresql-9.2</code></p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/how-to-install-postgresql-9-2-on-ubuntu-12-3d53cb9cf653?source=collection_home---6------0-----------------------" data-action="open-post" data-action-source="collection_home---6------0-----------------------" data-action-value="https://medium.com/altuure/how-to-install-postgresql-9-2-on-ubuntu-12-3d53cb9cf653?source=collection_home---6------0-----------------------" data-post-id="3d53cb9cf653">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="3d53cb9cf653" data-is-flush-left="true" data-source="listing-----3d53cb9cf653---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/3d53cb9cf653" data-action-source="listing-----3d53cb9cf653---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents"  data-action="show-recommends" data-action-value="3d53cb9cf653">2</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="3d53cb9cf653"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------1-----------------------" data-post-id="cb30f44f899"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------1-----------------------" data-action="show-user-card" data-action-source="collection_home---6------1-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/just-launched-achivy-com-cb30f44f899?source=collection_home---6------1-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/just-launched-achivy-com-cb30f44f899?source=collection_home---6------1-----------------------" data-action-source="preview-listing" ><time datetime="2012-01-10T08:42:27.000Z">Jan 10, 2012</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/just-launched-achivy-com-cb30f44f899?source=collection_home---6------1-----------------------" data-action-source="collection_home---6------1-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="71ac" id="71ac" class="graf graf--h3 graf--leading graf--title">just launched achivy.com…</h3><p name="36b7" id="36b7" class="graf graf--p graf-after--h3">Hi everybody, this was my surprise project , achivy.com my first startup, my first ruby on rails project :)</p><p name="7fc3" id="7fc3" class="graf graf--p graf-after--p graf--trailing">you can check the <span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="http://achivy.com/c/about" title="about achivy">about page</a> but it is simply a gamification platform for lots of social sites and more, it now supports foursquare, gowalla…</p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/just-launched-achivy-com-cb30f44f899?source=collection_home---6------1-----------------------" data-action="open-post" data-action-source="collection_home---6------1-----------------------" data-action-value="https://medium.com/altuure/just-launched-achivy-com-cb30f44f899?source=collection_home---6------1-----------------------" data-post-id="cb30f44f899">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="cb30f44f899" data-is-flush-left="true" data-source="listing-----cb30f44f899---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/cb30f44f899" data-action-source="listing-----cb30f44f899---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents"  data-action="show-recommends" data-action-value="cb30f44f899">2</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="cb30f44f899"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------2-----------------------" data-post-id="681f7e2dcf0a"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------2-----------------------" data-action="show-user-card" data-action-source="collection_home---6------2-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/todo-list-681f7e2dcf0a?source=collection_home---6------2-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/todo-list-681f7e2dcf0a?source=collection_home---6------2-----------------------" data-action-source="preview-listing" ><time datetime="2011-10-11T08:30:49.000Z">Oct 11, 2011</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/todo-list-681f7e2dcf0a?source=collection_home---6------2-----------------------" data-action-source="collection_home---6------2-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="2480" id="2480" class="graf graf--h3 graf--leading graf--title">todo list</h3><p name="30a0" id="30a0" class="graf graf--p graf-after--h3">[caption id=”” align=”alignright” width=”240&quot; caption=”Image by alancleaver_2000 via Flickr”]</p><p name="2dc0" id="2dc0" class="graf graf--p graf-after--p">[/caption]</p><p name="efd6" id="efd6" class="graf graf--p graf-after--p graf--trailing">it has been a long time since I posted :( so it would be really good to put some targets and build a list of them. otherwise I will be lying on my coach…</p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/todo-list-681f7e2dcf0a?source=collection_home---6------2-----------------------" data-action="open-post" data-action-source="collection_home---6------2-----------------------" data-action-value="https://medium.com/altuure/todo-list-681f7e2dcf0a?source=collection_home---6------2-----------------------" data-post-id="681f7e2dcf0a">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="681f7e2dcf0a" data-is-flush-left="true" data-source="listing-----681f7e2dcf0a---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/681f7e2dcf0a" data-action-source="listing-----681f7e2dcf0a---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="681f7e2dcf0a"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------3-----------------------" data-post-id="5a2820e1926"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------3-----------------------" data-action="show-user-card" data-action-source="collection_home---6------3-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/release-notes-com-altuure-yagdao-0-3-jar-5a2820e1926?source=collection_home---6------3-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/release-notes-com-altuure-yagdao-0-3-jar-5a2820e1926?source=collection_home---6------3-----------------------" data-action-source="preview-listing" ><time datetime="2010-12-09T20:37:16.000Z">Dec 9, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/release-notes-com-altuure-yagdao-0-3-jar-5a2820e1926?source=collection_home---6------3-----------------------" data-action-source="collection_home---6------3-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="e030" id="e030" class="graf graf--h3 graf--leading graf--title">Release Notes: com.altuure.yagdao-0.3.jar</h3><p name="155d" id="155d" class="graf graf--p graf-after--h3 graf--trailing">Append Method handler<br>Another dynamic query builder. But this one , use simple StringBuilder instead of trying to parse the argument. So more fast and adjustable dynamic query builder</p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/release-notes-com-altuure-yagdao-0-3-jar-5a2820e1926?source=collection_home---6------3-----------------------" data-action="open-post" data-action-source="collection_home---6------3-----------------------" data-action-value="https://medium.com/altuure/release-notes-com-altuure-yagdao-0-3-jar-5a2820e1926?source=collection_home---6------3-----------------------" data-post-id="5a2820e1926">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="5a2820e1926" data-is-flush-left="true" data-source="listing-----5a2820e1926---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/5a2820e1926" data-action-source="listing-----5a2820e1926---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="5a2820e1926"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------4-----------------------" data-post-id="6e8c102d18f7"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------4-----------------------" data-action="show-user-card" data-action-source="collection_home---6------4-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/com-altuure-yagdao-0-2-jar-6e8c102d18f7?source=collection_home---6------4-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/com-altuure-yagdao-0-2-jar-6e8c102d18f7?source=collection_home---6------4-----------------------" data-action-source="preview-listing" ><time datetime="2010-11-03T00:04:54.000Z">Nov 2, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/com-altuure-yagdao-0-2-jar-6e8c102d18f7?source=collection_home---6------4-----------------------" data-action-source="collection_home---6------4-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="9a36" id="9a36" class="graf graf--h3 graf--leading graf--title">com.altuure.yagdao-0.2.jar</h3><p name="a4da" id="a4da" class="graf graf--p graf-after--h3">yagdao (Yet Another Generic DAO) finally.</p><p name="a056" id="a056" class="graf graf--p graf-after--p">this version is a little bit experimental but stable.</p><p name="5644" id="5644" class="graf graf--p graf-after--p graf--trailing">yagdao is an generic dao framework that would be enabled by annotations.</p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/com-altuure-yagdao-0-2-jar-6e8c102d18f7?source=collection_home---6------4-----------------------" data-action="open-post" data-action-source="collection_home---6------4-----------------------" data-action-value="https://medium.com/altuure/com-altuure-yagdao-0-2-jar-6e8c102d18f7?source=collection_home---6------4-----------------------" data-post-id="6e8c102d18f7">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="6e8c102d18f7" data-is-flush-left="true" data-source="listing-----6e8c102d18f7---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/6e8c102d18f7" data-action-source="listing-----6e8c102d18f7---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="6e8c102d18f7"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------5-----------------------" data-post-id="5a8ee6355591"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------5-----------------------" data-action="show-user-card" data-action-source="collection_home---6------5-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/retrieving-id-field-from-jpa-and-hibernate-5a8ee6355591?source=collection_home---6------5-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/retrieving-id-field-from-jpa-and-hibernate-5a8ee6355591?source=collection_home---6------5-----------------------" data-action-source="preview-listing" ><time datetime="2010-10-25T12:19:32.000Z">Oct 25, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/retrieving-id-field-from-jpa-and-hibernate-5a8ee6355591?source=collection_home---6------5-----------------------" data-action-source="collection_home---6------5-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="ed39" id="ed39" class="graf graf--h3 graf--leading graf--title">Retrieving Id field from JPA and Hibernate</h3><p name="170a" id="170a" class="graf graf--p graf-after--h3">for hibernate</p><pre name="e217" id="e217" class="graf graf--pre graf-after--p graf--trailing">public String getIdProperty(Class entityClass) {<br>String idProperty=sessionAccessor.getSessionFactory()<br>                                              .getClassMetadata(entityClass)…</pre></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/retrieving-id-field-from-jpa-and-hibernate-5a8ee6355591?source=collection_home---6------5-----------------------" data-action="open-post" data-action-source="collection_home---6------5-----------------------" data-action-value="https://medium.com/altuure/retrieving-id-field-from-jpa-and-hibernate-5a8ee6355591?source=collection_home---6------5-----------------------" data-post-id="5a8ee6355591">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="5a8ee6355591" data-is-flush-left="true" data-source="listing-----5a8ee6355591---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/5a8ee6355591" data-action-source="listing-----5a8ee6355591---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="5a8ee6355591"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------6-----------------------" data-post-id="761ce278bc7b"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------6-----------------------" data-action="show-user-card" data-action-source="collection_home---6------6-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b?source=collection_home---6------6-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b?source=collection_home---6------6-----------------------" data-action-source="preview-listing" ><time datetime="2010-09-23T16:07:49.000Z">Sep 23, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b?source=collection_home---6------6-----------------------" data-action-source="collection_home---6------6-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="8b00" id="8b00" class="graf graf--h3 graf--leading graf--title">JPA Criteria API by samples — Part-II</h3><p name="e629" id="e629" class="graf graf--p graf-after--h3"><span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0">JPA Criteria API by samples — Part-I</a></p><p name="a257" id="a257" class="graf graf--p graf-after--p">some more examples with JPA criteria API<br>Simple Join query</p><pre name="c1a8" id="c1a8" class="graf graf--pre graf-after--p graf--trailing">long category=200L;<br>Query query = entityManager.createQuery(“select s from OrderItem s…</pre></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b?source=collection_home---6------6-----------------------" data-action="open-post" data-action-source="collection_home---6------6-----------------------" data-action-value="https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b?source=collection_home---6------6-----------------------" data-post-id="761ce278bc7b">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="761ce278bc7b" data-is-flush-left="true" data-source="listing-----761ce278bc7b---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/761ce278bc7b" data-action-source="listing-----761ce278bc7b---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents"  data-action="show-recommends" data-action-value="761ce278bc7b">6</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="761ce278bc7b"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------7-----------------------" data-post-id="6973256e5ee0"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------7-----------------------" data-action="show-user-card" data-action-source="collection_home---6------7-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0?source=collection_home---6------7-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0?source=collection_home---6------7-----------------------" data-action-source="preview-listing" ><time datetime="2010-09-23T15:01:29.000Z">Sep 23, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="2 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0?source=collection_home---6------7-----------------------" data-action-source="collection_home---6------7-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="fce1" id="fce1" class="graf graf--h3 graf--leading graf--title">JPA Criteria API by samples — Part-I</h3><p name="7b2f" id="7b2f" class="graf graf--p graf-after--h3">Although examples are pretty much simple it will help you with finalized version of JPA 2.0 API.</p><p name="ceb6" id="ceb6" class="graf graf--p graf-after--p graf--trailing">For Part II please read <span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b">JPA Criteria API by samples — Part-II</a></p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0?source=collection_home---6------7-----------------------" data-action="open-post" data-action-source="collection_home---6------7-----------------------" data-action-value="https://medium.com/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0?source=collection_home---6------7-----------------------" data-post-id="6973256e5ee0">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="6973256e5ee0" data-is-flush-left="true" data-source="listing-----6973256e5ee0---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/6973256e5ee0" data-action-source="listing-----6973256e5ee0---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents"  data-action="show-recommends" data-action-value="6973256e5ee0">12</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0?source=collection_home---6------7-----------------------#--responses" data-action-source="collection_home---6------7-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="6973256e5ee0"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------8-----------------------" data-post-id="1bdfa77ef3b8"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------8-----------------------" data-action="show-user-card" data-action-source="collection_home---6------8-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/hibernate-criteria-api-bug-unnecessary-fetch-1bdfa77ef3b8?source=collection_home---6------8-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/hibernate-criteria-api-bug-unnecessary-fetch-1bdfa77ef3b8?source=collection_home---6------8-----------------------" data-action-source="preview-listing" ><time datetime="2010-09-21T22:30:44.000Z">Sep 21, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/hibernate-criteria-api-bug-unnecessary-fetch-1bdfa77ef3b8?source=collection_home---6------8-----------------------" data-action-source="collection_home---6------8-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="01e5" id="01e5" class="graf graf--h3 graf--leading graf--title">hibernate criteria API bug: unnecessary fetch</h3><p name="dd16" id="dd16" class="graf graf--p graf-after--h3">Although this is an important, it is a hidden bug unless you trace you generated SQL for hibernate.</p><p name="defe" id="defe" class="graf graf--p graf-after--p">simply the two lines of code below should generate same SQL</p><pre name="d501" id="d501" class="graf graf--pre graf-after--p graf--trailing">Criteria rootCriteria =…</pre></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/hibernate-criteria-api-bug-unnecessary-fetch-1bdfa77ef3b8?source=collection_home---6------8-----------------------" data-action="open-post" data-action-source="collection_home---6------8-----------------------" data-action-value="https://medium.com/altuure/hibernate-criteria-api-bug-unnecessary-fetch-1bdfa77ef3b8?source=collection_home---6------8-----------------------" data-post-id="1bdfa77ef3b8">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="1bdfa77ef3b8" data-is-flush-left="true" data-source="listing-----1bdfa77ef3b8---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/1bdfa77ef3b8" data-action-source="listing-----1bdfa77ef3b8---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="1bdfa77ef3b8"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation" data-source="collection_home---6------9-----------------------" data-post-id="45d0d39f01ac"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://medium.com/@altuure" data-action="show-user-card" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/0*3um1gARjzP3cNUrG.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of altuure"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken"   href="https://medium.com/@altuure?source=collection_home---6------9-----------------------" data-action="show-user-card" data-action-source="collection_home---6------9-----------------------" data-action-value="c08b7e51cfcc" data-action-type="hover" data-user-id="c08b7e51cfcc" dir="auto">altuure</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/altuure/how-to-get-generic-metadata-from-a-class-at-runtime-45d0d39f01ac?source=collection_home---6------9-----------------------" data-action="open-post" data-action-value="https://medium.com/altuure/how-to-get-generic-metadata-from-a-class-at-runtime-45d0d39f01ac?source=collection_home---6------9-----------------------" data-action-source="preview-listing" ><time datetime="2010-08-31T07:00:20.000Z">Aug 30, 2010</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="2 min read"></span></div></div></div></div></div><a class=""   href="https://medium.com/altuure/how-to-get-generic-metadata-from-a-class-at-runtime-45d0d39f01ac?source=collection_home---6------9-----------------------" data-action-source="collection_home---6------9-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="61fd" id="61fd" class="graf graf--h3 graf--leading graf--title">How to get Generic Metadata from a Class at Runtime</h3><p name="dee9" id="dee9" class="graf graf--p graf-after--h3 graf--trailing">Here you can see how to traverse the runtime information to get this information. You Can simply traverse the inheritance tree ofr the class and get the metadata of the generic definition. Somthing like</p></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal"   href="https://medium.com/altuure/how-to-get-generic-metadata-from-a-class-at-runtime-45d0d39f01ac?source=collection_home---6------9-----------------------" data-action="open-post" data-action-source="collection_home---6------9-----------------------" data-action-value="https://medium.com/altuure/how-to-get-generic-metadata-from-a-class-at-runtime-45d0d39f01ac?source=collection_home---6------9-----------------------" data-post-id="45d0d39f01ac">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="45d0d39f01ac" data-is-flush-left="true" data-source="listing-----45d0d39f01ac---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker"  data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/45d0d39f01ac" data-action-source="listing-----45d0d39f01ac---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton"  data-action="add-to-bookmarks" data-action-value="45d0d39f01ac"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="col u-size4of12 u-xs-size12of12 js-aboutCollectionBox u-marginTop30 u-minHeight250 u-xs-hide"></div></div></div></div></div><style class="js-collectionStyle">
.u-accentColor--borderLight {border-color: #1A8917 !important;}
.u-accentColor--borderNormal {border-color: #1A8917 !important;}
.u-accentColor--borderDark {border-color: #0F730C !important;}
.u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #1A8917 !important;}
.u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #1A8917 !important;}
.u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #0F730C !important;}
.u-accentColor--textNormal {color: #0F730C !important;}
.u-accentColor--hoverTextNormal:hover {color: #0F730C !important;}
.u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #0F730C !important;}
.u-accentColor--textDark {color: #0F730C !important;}
.u-accentColor--backgroundLight {background-color: #1A8917 !important;}
.u-accentColor--backgroundNormal {background-color: #1A8917 !important;}
.u-accentColor--backgroundDark {background-color: #0F730C !important;}
.u-accentColor--buttonDark {border-color: #0F730C !important; color: #0F730C !important;}
.u-accentColor--buttonDark:hover {border-color: #0F730C !important;}
.u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #0F730C !important; fill: #0F730C !important;}
.u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #1A8917 !important; color: #0F730C !important;}
.u-accentColor--buttonNormal:hover {border-color: #0F730C !important;}
.u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #1A8917 !important; fill: #1A8917 !important;}
.u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #0F730C !important; border-color: #0F730C !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #1A8917 !important; border-color: #1A8917 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #0F730C !important;}
.u-accentColor--highlightFaint {background-color: rgba(232, 243, 232, 1) !important;}
.u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(163, 208, 162, 1) !important;}
.postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(232, 243, 232, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(232, 243, 232, 1), rgba(232, 243, 232, 1));}
.postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(209, 231, 209, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(209, 231, 209, 1), rgba(209, 231, 209, 1));}
.postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(163, 208, 162, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));}
.postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(163, 208, 162, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));}
.postArticle.is-withAccentColors .markup--highlight {background-color: rgba(163, 208, 162, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);}
.u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);}
.u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);}
.u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);}
.u-imageSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum  .ui-h1,.u-imageSpectrum  .ui-h2,.u-imageSpectrum  .ui-h3,.u-imageSpectrum  .ui-h4,.u-imageSpectrum  .ui-brand1,.u-imageSpectrum  .ui-brand2,.u-imageSpectrum  .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum  .ui-body,.u-imageSpectrum  .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum  .ui-summary,.u-imageSpectrum  .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;}
.u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;}
.u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;}
.u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;}
.u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);}
.u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);}
.u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);}
.u-resetSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum  .ui-h1,.u-resetSpectrum  .ui-h2,.u-resetSpectrum  .ui-h3,.u-resetSpectrum  .ui-h4,.u-resetSpectrum  .ui-brand1,.u-resetSpectrum  .ui-brand2,.u-resetSpectrum  .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum  .ui-body,.u-resetSpectrum  .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum  .ui-summary,.u-resetSpectrum  .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;}
.u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;}
.u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;}
.u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;}
.u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style><div class="js-collectionFooter u-hide"><div class="container u-maxWidth1040"><div class="u-marginTop10 u-paddingTop10 u-paddingBottom30 u-borderTopLighter"><div class="linkSet u-clearfix"><div class="u-floatRight u-textColorNormal u-baseColor--textNormal u-xs-floatLeft"><a class="button button--chromeless u-baseColor--buttonNormal u-marginLeft15 u-lineHeight35 u-xs-block u-xs-marginLeft0"   href="https://medium.com/altuure/about" title="About altuure" aria-label="About altuure">About altuure</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://medium.com/altuure/latest" title="Latest Stories for altuure" aria-label="Latest Stories for altuure">Latest Stories</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://medium.com/altuure/archive" title="Archive for altuure" aria-label="Archive for altuure">Archive</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://medium.com/about">About Medium</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f">Terms</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9">Privacy</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://medium.com/business">Teams</a></div></div></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[
window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;}
// ]]></script><script>// <![CDATA[
var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","buildLabel":"20240215-1453-root","currentUser":{"userId":"lo_bfbb3b7f3994","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.azyIxgV9kJJF932oJom4Ow.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.Lzn0A7F7pxwI81oZbCaDaQ.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.WMhDj1id0Coqkx7hgNNDwQ.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.BaYjjIl-XlJe7IK1gMQP5A.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.CcD4WJDQRbK5d1ZTCx1Ccg.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.xBU1ca80lKODcA6O2ZLepQ.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.QANvjd2DE3k-cxArWLeCWw.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.UJup3iPPuK0M59yGBsWqRg.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.uu0h6hvGdXD3w-vFYbM0dg.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.z8Dm6VY3tBx_Rp8jib2y9A.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.aC9exwGFB3gdW3du4LFWPQ.12.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1708014185926:4e8cadbc7ad1","useragent":{"browser":"other","family":"","os":"","version":0,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"covid_19_cdc_banner":true,"crm_send_contact_to_sendgrid":true,"disable_partner_program_enrollment":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_annual_renewal_reminder_email":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_cache_less_following_feed":true,"enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_digest_generation_pipeline":true,"enable_digest_tagline":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_play_purchase_on_backend":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_iceland_forced_android":true,"enable_import":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_c":true,"enable_monthly_default_plans_web":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_pp_dashboard_referred_earnings":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_recirc_model":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_triton_drm_v3_service":true,"enable_triton_drm_v3_tqp_service":true,"enable_triton_recirc_service":true,"enable_twitter_auth_suggestions":true,"enable_updated_new_user_onboarding":true,"enable_verifications_service":true,"explicit_signals_ios":true,"glyph_font_set":"m2-unbound-source-serif-pro","ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true,"web_enable_syntax_highlighting":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/1*m-R_BkNf1Qjr1YbyOIJY2w.png","faviconImageId":"1*m-R_BkNf1Qjr1YbyOIJY2w.png","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"editorFaviconUrl":"https://miro.medium.com/1*m-R_BkNf1Qjr1YbyOIJY2w.png","glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","lightstep":{"accessToken":"ce5be895bef60919541332990ac9fef2","carrier":"{\"ot-tracer-spanid\":\"763b7a4404cec16e\",\"ot-tracer-traceid\":\"5015942698a6a9a5\",\"ot-tracer-sampled\":\"true\"}","host":"lightstep.medium.systems"},"facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"US","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"}
// ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.azyIxgV9kJJF932oJom4Ow.12.js" async></script><script>// <![CDATA[
window["obvInit"]({"references":{"Collection":{"3c59c0e74a97":{"id":"3c59c0e74a97","name":"altuure","slug":"altuure","tags":["SOFTWARE DEVELOPMENT","JAVA"],"creatorId":"c08b7e51cfcc","description":"Continous Developer Blog","shortDescription":"Continous Developer Blog","image":{"imageId":"1*j77IXXuj6pdkTs0Hk8WhYw.jpeg","filter":"","backgroundSize":"","originalWidth":100,"originalHeight":105,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":6,"activeAt":1505303533428},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"twitterUsername":"altuure","publicEmail":"altuure@altuure.com","sections":[{"type":2,"collectionHeaderMetadata":{"title":"altuure","description":"yyy","backgroundImage":{},"logoImage":{},"alignment":2,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":6,"number":10,"postIds":[]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF1A8917","point":0},{"color":"#FF11800E","point":0.1},{"color":"#FF0F730C","point":0.2},{"color":"#FF095407","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE8F3E8","point":0.1},{"color":"#FFE8F3E8","point":0.2},{"color":"#FFD1E7D1","point":0.6},{"color":"#FFA3D0A2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF095407","point":0},{"color":"#FF0F730C","point":0.1},{"color":"#FF11800E","point":0.2},{"color":"#FF1A8917","point":1}],"backgroundColor":"#FF000000"}},"navItems":[],"colorBehavior":1,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"altuure","description":"yyy","backgroundImage":{},"logoImage":{},"alignment":2,"layout":6},"subscriberCount":6,"tagline":"Continous Developer Blog","polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"type":"Collection"}},"User":{"c08b7e51cfcc":{"userId":"c08b7e51cfcc","name":"altuure","username":"altuure","createdAt":1504524200645,"imageId":"0*3um1gARjzP3cNUrG.jpg","backgroundImageId":"","bio":"#expat #amsterdam #cycling","twitterScreenName":"altuure","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"}},"Post":{"3d53cb9cf653":{"id":"3d53cb9cf653","versionId":"11ad5d58dde8","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"How to Install PostgreSQL 9.2 on Ubuntu 12","detectedLanguage":"en","latestVersion":"11ad5d58dde8","latestPublishedVersion":"11ad5d58dde8","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303355804,"updatedAt":1521717742411,"acceptedAt":0,"firstPublishedAt":1349178198000,"latestPublishedAt":1505303511928,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":47,"imageCount":0,"readingTime":0.17735849056603772,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":2,"isBookmarked":false,"tags":[{"slug":"lnux","name":"Lnux","postCount":1,"metadata":{"postCount":1,"coverImage":{"id":"1*jVWaeRFbvh0y2zPCCaF7vg.png","originalWidth":1320,"originalHeight":2200,"isFeatured":true}},"type":"Tag"},{"slug":"postgresql","name":"Postgresql","postCount":6917,"metadata":{"postCount":6917,"coverImage":{"id":"0*MmnhNkP8aVrOdiYj.jpg","originalWidth":1100,"originalHeight":576,"isFeatured":true}},"type":"Tag"},{"slug":"ubuntu","name":"Ubuntu","postCount":13589,"metadata":{"postCount":13589,"coverImage":{"id":"0*_LapGAQx6DsbHNaR","originalWidth":4000,"originalHeight":3177,"isFeatured":true,"unsplashPhotoId":"cVEOh_JJmEE"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[],"version":"0.3","generatedAt":1505303512355},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":2,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"how-to-install-postgresql-9-2-on-ubuntu-12","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1349178198000,"visibility":0,"uniqueSlug":"how-to-install-postgresql-9-2-on-ubuntu-12-3d53cb9cf653","previewContent":{"bodyModel":{"paragraphs":[{"name":"2455","type":3,"text":"How to Install PostgreSQL 9.2 on Ubuntu 12","markups":[],"alignment":1},{"name":"2e1e","type":1,"text":"sudo apt-get install python-software-properties\nsudo add-apt-repository ppa:pitti/postgresql\nsudo apt-get update\nsudo apt-get install postgresql-9.2","markups":[{"type":10,"start":0,"end":148}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2012/10/02/how-to-install-postgresql-9-2-on-ubuntu-12/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"2455","type":3,"text":"How to Install PostgreSQL 9.2 on Ubuntu 12","markups":[]},{"name":"2e1e","type":1,"text":"sudo apt-get install python-software-properties\nsudo add-apt-repository ppa:pitti/postgresql\nsudo apt-get update\nsudo apt-get install postgresql-9.2","markups":[{"type":10,"start":0,"end":148}]},{"name":"ea42","type":1,"text":"hopefully will move from mysql to postgresql","markups":[]},{"name":"063e","type":1,"text":"I will try to publish some performance comparision !!!","markups":[]},{"name":"db50","type":1,"text":"cheers","markups":[]}],"sections":[{"name":"2eb4","startIndex":0}]},"isFullContent":true,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"cb30f44f899":{"id":"cb30f44f899","versionId":"68e1718d9265","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"just launched achivy.com…","detectedLanguage":"en","latestVersion":"68e1718d9265","latestPublishedVersion":"68e1718d9265","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303346431,"updatedAt":1513993241328,"acceptedAt":0,"firstPublishedAt":1326184947000,"latestPublishedAt":1505303517959,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":107,"imageCount":0,"readingTime":0.4037735849056604,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":2,"isBookmarked":false,"tags":[{"slug":"news","name":"News","postCount":289412,"metadata":{"postCount":289412,"coverImage":{"id":"1*bBT8o-o1T0gnF-SP_rgK6A.png","originalWidth":499,"originalHeight":209,"isFeatured":true}},"type":"Tag"},{"slug":"notes","name":"Notes","postCount":9406,"metadata":{"postCount":9406,"coverImage":{"id":"0*Zo4LCx4R4cY12qrs","originalWidth":1776,"originalHeight":1184,"isFeatured":true,"unsplashPhotoId":"CxYHfBkC0vs"}},"type":"Tag"},{"slug":"achivy","name":"Achivy","postCount":0,"metadata":{"postCount":0},"type":"Tag"},{"slug":"gamification","name":"Gamification","postCount":7272,"metadata":{"postCount":7272,"coverImage":{"id":"0*K-3xlfOiMCF3qCGt.gif","originalWidth":1221,"originalHeight":660,"isFeatured":true,"alt":"Gif pixelado de uma floresta com dois personagens correndo de um lado para o outro."}},"type":"Tag"},{"slug":"rails","name":"Rails","postCount":7190,"metadata":{"postCount":7190,"coverImage":{"id":"1*xuvNiLc24qlRqvoPaf5LJg.jpeg","originalWidth":1920,"originalHeight":1080,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"http://achivy.com/c/about","alts":[],"httpStatus":404}],"version":"0.3","generatedAt":1505303518612},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":2,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"just-launched-achivy-com","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1326184947000,"visibility":0,"uniqueSlug":"just-launched-achivy-com-cb30f44f899","previewContent":{"bodyModel":{"paragraphs":[{"name":"71ac","type":3,"text":"just launched achivy.com…","markups":[],"alignment":1},{"name":"36b7","type":1,"text":"Hi everybody, this was my surprise project , achivy.com my first startup, my first ruby on rails project :)","markups":[],"alignment":1},{"name":"7fc3","type":1,"text":"you can check the about page but it is simply a gamification platform for lots of social sites and more, it now supports foursquare, gowalla…","markups":[{"type":3,"start":18,"end":28,"href":"http://achivy.com/c/about","title":"about achivy","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2012/01/10/just-launched-achivy-com/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"71ac","type":3,"text":"just launched achivy.com…","markups":[]},{"name":"36b7","type":1,"text":"Hi everybody, this was my surprise project , achivy.com my first startup, my first ruby on rails project :)","markups":[]},{"name":"7fc3","type":1,"text":"you can check the about page but it is simply a gamification platform for lots of social sites and more, it now supports foursquare, gowalla, stackoverflow etc….","markups":[{"type":3,"start":18,"end":28,"href":"http://achivy.com/c/about","title":"about achivy","rel":"","anchorType":0}]},{"name":"c1ca","type":6,"text":"Achivy adds some fun…","markups":[]}],"sections":[{"name":"a25c","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"681f7e2dcf0a":{"id":"681f7e2dcf0a","versionId":"3b699d6363a","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"todo list","detectedLanguage":"en","latestVersion":"3b699d6363a","latestPublishedVersion":"3b699d6363a","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303362184,"updatedAt":1523201373171,"acceptedAt":0,"firstPublishedAt":1318321849000,"latestPublishedAt":1505303506975,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":87,"imageCount":1,"readingTime":0.5283018867924528,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":0,"isBookmarked":false,"tags":[{"slug":"notes","name":"Notes","postCount":9406,"metadata":{"postCount":9406,"coverImage":{"id":"0*Zo4LCx4R4cY12qrs","originalWidth":1776,"originalHeight":1184,"isFeatured":true,"unsplashPhotoId":"CxYHfBkC0vs"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[],"version":"0.3","generatedAt":1505303507468},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":0,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"todo-list","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1318321849000,"visibility":0,"uniqueSlug":"todo-list-681f7e2dcf0a","previewContent":{"bodyModel":{"paragraphs":[{"name":"2480","type":3,"text":"todo list","markups":[],"alignment":1},{"name":"30a0","type":1,"text":"[caption id=”” align=”alignright” width=”240\" caption=”Image by alancleaver_2000 via Flickr”]","markups":[],"alignment":1},{"name":"2dc0","type":1,"text":"[/caption]","markups":[],"alignment":1},{"name":"efd6","type":1,"text":"it has been a long time since I posted :( so it would be really good to put some targets and build a list of them. otherwise I will be lying on my coach…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2011/10/11/todo-list/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"2480","type":3,"text":"todo list","markups":[]},{"name":"30a0","type":1,"text":"[caption id=”” align=”alignright” width=”240\" caption=”Image by alancleaver_2000 via Flickr”]","markups":[]},{"name":"ca3b","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*WdK8IfuegPMy_vwe.jpg","originalWidth":240,"originalHeight":160,"externalSrc":"http://farm3.static.flickr.com/2722/4439276478_8bb7a50ab8_m.jpg","alt":"checklist"}},{"name":"2dc0","type":1,"text":"[/caption]","markups":[]},{"name":"efd6","type":1,"text":"it has been a long time since I posted :( so it would be really good to put some targets and build a list of them. otherwise I will be lying on my coach all the time.","markups":[]},{"name":"f645","type":9,"text":"ruby on…","markups":[]}],"sections":[{"name":"55b2","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"5a2820e1926":{"id":"5a2820e1926","versionId":"5acc06ccc88f","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"Release Notes: com.altuure.yagdao-0.3.jar","detectedLanguage":"en","latestVersion":"5acc06ccc88f","latestPublishedVersion":"5acc06ccc88f","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303333932,"updatedAt":1529087965916,"acceptedAt":0,"firstPublishedAt":1291927036000,"latestPublishedAt":1505303483700,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":159,"imageCount":0,"readingTime":0.6,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":0,"isBookmarked":false,"tags":[{"slug":"notes","name":"Notes","postCount":9406,"metadata":{"postCount":9406,"coverImage":{"id":"0*Zo4LCx4R4cY12qrs","originalWidth":1776,"originalHeight":1184,"isFeatured":true,"unsplashPhotoId":"CxYHfBkC0vs"}},"type":"Tag"},{"slug":"genericdao","name":"Genericdao","postCount":0,"metadata":{"postCount":0},"type":"Tag"},{"slug":"hibernate","name":"Hibernate","postCount":1166,"metadata":{"postCount":1166,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"jpa","name":"Jpa","postCount":1000,"metadata":{"postCount":1000,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"yagdao","name":"Yagdao","postCount":0,"metadata":{"postCount":0},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"http://code.google.com/p/yagdao/source/browse/tags/com.altuure.yagdao-0.3/src/test/java/com/altuure/yagdao/base/SimpleDAOAppendTest.java","alts":[],"httpStatus":200},{"url":"http://code.google.com/p/yagdao/source/browse/tags/com.altuure.yagdao-0.3/src/test/java/com/altuure/yagdao/dao/SimpleBeanAppendDAO.java","alts":[],"httpStatus":200},{"url":"http://code.google.com/p/yagdao/source/browse/tags/com.altuure.yagdao-0.3/src/test/java/com/altuure/yagdao/base/SimpleDAOCriteriaNewTest.java","alts":[],"httpStatus":200},{"url":"http://code.google.com/p/yagdao/source/browse/tags/com.altuure.yagdao-0.3/src/test/java/com/altuure/yagdao/dao/SimpleBeanNewDAO.java","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1505303484759},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":0,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"release-notes-com-altuure-yagdao-0-3-jar","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1291927036000,"visibility":0,"uniqueSlug":"release-notes-com-altuure-yagdao-0-3-jar-5a2820e1926","previewContent":{"bodyModel":{"paragraphs":[{"name":"e030","type":3,"text":"Release Notes: com.altuure.yagdao-0.3.jar","markups":[],"alignment":1},{"name":"155d","type":1,"text":"Append Method handler\nAnother dynamic query builder. But this one , use simple StringBuilder instead of trying to parse the argument. So more fast and adjustable dynamic query builder","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/12/09/release-notes-com-altuure-yagdao-0-3-jar/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"e030","type":3,"text":"Release Notes: com.altuure.yagdao-0.3.jar","markups":[]},{"name":"155d","type":1,"text":"Append Method handler\nAnother dynamic query builder. But this one , use simple StringBuilder instead of trying to parse the argument. So more fast and adjustable dynamic query builder","markups":[]},{"name":"38da","type":1,"text":"For more see test cases and example dao","markups":[{"type":3,"start":13,"end":23,"href":"http://code.google.com/p/yagdao/source/browse/tags/com.altuure.yagdao-0.3/src/test/java/com/altuure/yagdao/base/SimpleDAOAppendTest.java","title":"","rel":"","anchorType":0},{"type":3,"start":28,"end":39,"href":"http://code.google.com/p/yagdao/source/browse/tags/com.altuure.yagdao-0.3/src/test/java/com/altuure/yagdao/dao/SimpleBeanAppendDAO.java","title":"","rel":"","anchorType":0}]},{"name":"0e94","type":8,"text":"@YMethod(type = YMethodType.APPEND,select = \"pbyte,count(id)\",groupBy = \"pbyte\")\n    List\x3cSimpleBean\x3e append2(@YParameter(\"pint\x3e=?\") int i);","markups":[]},{"name":"5b97","type":8,"text":"@YMethod(type =…","markups":[]}],"sections":[{"name":"2e8e","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"6e8c102d18f7":{"id":"6e8c102d18f7","versionId":"4720ad5fe007","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"com.altuure.yagdao-0.2.jar","detectedLanguage":"en","latestVersion":"4720ad5fe007","latestPublishedVersion":"4720ad5fe007","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303357047,"updatedAt":1505303507500,"acceptedAt":0,"firstPublishedAt":1288742694000,"latestPublishedAt":1505303506666,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":53,"imageCount":0,"readingTime":0.2,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":0,"isBookmarked":false,"tags":[{"slug":"notes","name":"Notes","postCount":9406,"metadata":{"postCount":9406,"coverImage":{"id":"0*Zo4LCx4R4cY12qrs","originalWidth":1776,"originalHeight":1184,"isFeatured":true,"unsplashPhotoId":"CxYHfBkC0vs"}},"type":"Tag"},{"slug":"dao","name":"Dao","postCount":21407,"metadata":{"postCount":21407,"coverImage":{"id":"1*2AmEx6H3r9iYjH99hpVo5Q.jpeg","originalWidth":900,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"genericdao","name":"Genericdao","postCount":0,"metadata":{"postCount":0},"type":"Tag"},{"slug":"hibernate","name":"Hibernate","postCount":1166,"metadata":{"postCount":1166,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"jpa","name":"Jpa","postCount":1000,"metadata":{"postCount":1000,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"/projects/yagdao/usage","alts":[],"httpStatus":0},{"url":"/projects/yagdao/quickstart","alts":[],"httpStatus":0}],"version":"0.3","generatedAt":1505303507068},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":0,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"com-altuure-yagdao-0-2-jar","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1288742694000,"visibility":0,"uniqueSlug":"com-altuure-yagdao-0-2-jar-6e8c102d18f7","previewContent":{"bodyModel":{"paragraphs":[{"name":"9a36","type":3,"text":"com.altuure.yagdao-0.2.jar","markups":[],"alignment":1},{"name":"a4da","type":1,"text":"yagdao (Yet Another Generic DAO) finally.","markups":[],"alignment":1},{"name":"a056","type":1,"text":"this version is a little bit experimental but stable.","markups":[],"alignment":1},{"name":"5644","type":1,"text":"yagdao is an generic dao framework that would be enabled by annotations.","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/11/03/com-altuure-yagdao-0-2-jar/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"9a36","type":3,"text":"com.altuure.yagdao-0.2.jar","markups":[]},{"name":"a4da","type":1,"text":"yagdao (Yet Another Generic DAO) finally.","markups":[]},{"name":"a056","type":1,"text":"this version is a little bit experimental but stable.","markups":[]},{"name":"5644","type":1,"text":"yagdao is an generic dao framework that would be enabled by annotations.","markups":[]},{"name":"8fbe","type":1,"text":"simple step to go through for setup read more","markups":[{"type":3,"start":30,"end":45,"href":"/projects/yagdao/quickstart","title":"","rel":"","anchorType":0}]},{"name":"e2f7","type":9,"text":"add jar into your classpath","markups":[]},{"name":"17f5","type":9,"text":"extend GenericDAO","markups":[]},{"name":"e0b9","type":1,"text":"moreover you can implement custom method read…","markups":[{"type":3,"start":41,"end":50,"href":"/projects/yagdao/usage","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"b7ec","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"5a8ee6355591":{"id":"5a8ee6355591","versionId":"5cbd7f9a7a42","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"Retrieving Id field from JPA and Hibernate","detectedLanguage":"en","latestVersion":"5cbd7f9a7a42","latestPublishedVersion":"5cbd7f9a7a42","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303338729,"updatedAt":1514082087971,"acceptedAt":0,"firstPublishedAt":1288009172000,"latestPublishedAt":1505303489720,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":80,"imageCount":0,"readingTime":0.3018867924528302,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":0,"isBookmarked":false,"tags":[{"slug":"criterion","name":"Criteria","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*jZ3G7NsbVhRP6sGX.png","originalWidth":1500,"originalHeight":722,"externalSrc":"http://www.selectbesthost.com/wp-content/uploads/2016/12/criteria-to-choose-right-domain-name.png"}},"type":"Tag"},{"slug":"hibernate","name":"Hibernate","postCount":1166,"metadata":{"postCount":1166,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"id","name":"Id","postCount":1915,"metadata":{"postCount":1915,"coverImage":{"id":"0*nzRY472Wx81TmNCP","originalWidth":5555,"originalHeight":5555,"isFeatured":true,"unsplashPhotoId":"agcwYGtW0Ew"}},"type":"Tag"},{"slug":"jpa","name":"Jpa","postCount":1000,"metadata":{"postCount":1000,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"#comment-1086","alts":[],"httpStatus":0}],"version":"0.3","generatedAt":1505303490084},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":0,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"retrieving-id-field-from-jpa-and-hibernate","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1288009172000,"visibility":0,"uniqueSlug":"retrieving-id-field-from-jpa-and-hibernate-5a8ee6355591","previewContent":{"bodyModel":{"paragraphs":[{"name":"ed39","type":3,"text":"Retrieving Id field from JPA and Hibernate","markups":[],"alignment":1},{"name":"170a","type":1,"text":"for hibernate","markups":[],"alignment":1},{"name":"e217","type":8,"text":"public String getIdProperty(Class entityClass) {\nString idProperty=sessionAccessor.getSessionFactory()\n                                              .getClassMetadata(entityClass)…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/10/25/retrieving-id-field-from-jpa-and-hibernate/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"ed39","type":3,"text":"Retrieving Id field from JPA and Hibernate","markups":[]},{"name":"170a","type":1,"text":"for hibernate","markups":[]},{"name":"e217","type":8,"text":"public String getIdProperty(Class entityClass) {\nString idProperty=sessionAccessor.getSessionFactory()\n                                              .getClassMetadata(entityClass)\n                                              .getIdentifierPropertyName();\nreturn idProperty;\n}","markups":[]},{"name":"ccef","type":1,"text":"for JPA 2.0 metamodel API this method or to get value of id field see comment below","markups":[{"type":3,"start":70,"end":83,"href":"#comment-1086","title":"","rel":"","anchorType":0}]},{"name":"f46d","type":8,"text":"public String getIdProperty(Class entityClass) {\n        String idProperty…","markups":[]}],"sections":[{"name":"2ad5","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"761ce278bc7b":{"id":"761ce278bc7b","versionId":"e1d65ad9d76a","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"JPA Criteria API by samples — Part-II","detectedLanguage":"en","latestVersion":"e1d65ad9d76a","latestPublishedVersion":"e1d65ad9d76a","hasUnpublishedEdits":false,"latestRev":54,"createdAt":1505303352292,"updatedAt":1528453890797,"acceptedAt":0,"firstPublishedAt":1285258069000,"latestPublishedAt":1505733154358,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":214,"imageCount":0,"readingTime":0.8075471698113208,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":2,"isBookmarked":false,"tags":[{"slug":"criterion","name":"Criteria","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*jZ3G7NsbVhRP6sGX.png","originalWidth":1500,"originalHeight":722,"externalSrc":"http://www.selectbesthost.com/wp-content/uploads/2016/12/criteria-to-choose-right-domain-name.png"}},"type":"Tag"},{"slug":"jpa","name":"Jpa","postCount":1000,"metadata":{"postCount":1000,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"sql","name":"Sql","postCount":30257,"metadata":{"postCount":30257,"coverImage":{"id":"1*vixP1avfXgfHjX-TsA2iBw.png","originalWidth":720,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"hibernate","name":"Hibernate","postCount":1166,"metadata":{"postCount":1166,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"orm","name":"Orm","postCount":2169,"metadata":{"postCount":2169,"coverImage":{"id":"1*jDNueWUDON3VUBGaXO2gvw.png","originalWidth":2048,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0","alts":[],"httpStatus":0}],"version":"0.3","generatedAt":1505733154620},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":6,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"jpa-criteria-api-by-samples-part-ii","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1285258069000,"visibility":0,"uniqueSlug":"jpa-criteria-api-by-samples-part-ii-761ce278bc7b","previewContent":{"bodyModel":{"paragraphs":[{"name":"8b00","type":3,"text":"JPA Criteria API by samples — Part-II","markups":[],"alignment":1},{"name":"e629","type":1,"text":"JPA Criteria API by samples — Part-I","markups":[{"type":3,"start":0,"end":36,"href":"/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0","title":"","rel":"","anchorType":0}],"alignment":1},{"name":"a257","type":1,"text":"some more examples with JPA criteria API\nSimple Join query","markups":[],"alignment":1},{"name":"c1a8","type":8,"text":"long category=200L;\nQuery query = entityManager.createQuery(“select s from OrderItem s…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/09/23/jpa-criteria-api-by-samples-part-ii/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"8b00","type":3,"text":"JPA Criteria API by samples — Part-II","markups":[]},{"name":"e629","type":1,"text":"JPA Criteria API by samples — Part-I","markups":[{"type":3,"start":0,"end":36,"href":"/altuure/jpa-criteria-api-by-samples-part-i-6973256e5ee0","title":"","rel":"","anchorType":0}]},{"name":"a257","type":1,"text":"some more examples with JPA criteria API\nSimple Join query","markups":[]},{"name":"c1a8","type":8,"text":"long category=200L;\nQuery query = entityManager.createQuery(“select s from OrderItem s where s.product.category=:cat”);\nquery.setParameter(“cat”, category);\nList\x3cOrderItem\x3e list = query.getResultList();\nCriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();\nCriteriaQuery\x3cObject\x3e criteriaQuery = criteriaBuilder.createQuery();\nRoot\x3cOrderItem\x3e from = criteriaQuery.from(OrderItem.class);\nPath\x3cObject\x3e path = from.join(“product”).get(“category”);\nCriteriaQuery\x3cObject\x3e select = criteriaQuery.select(from);\nselect.where(criteriaBuilder.equal(path, category));\nTypedQuery\x3cObject\x3e typedQuery =…","markups":[]}],"sections":[{"name":"741e","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"6973256e5ee0":{"id":"6973256e5ee0","versionId":"c80e0df857d9","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"JPA Criteria API by samples — Part-I","detectedLanguage":"en","latestVersion":"c80e0df857d9","latestPublishedVersion":"c80e0df857d9","hasUnpublishedEdits":false,"latestRev":236,"createdAt":1505303350411,"updatedAt":1525443483529,"acceptedAt":0,"firstPublishedAt":1285254089000,"latestPublishedAt":1505732993320,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":392,"imageCount":0,"readingTime":1.4792452830188678,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":1,"isBookmarked":false,"tags":[{"slug":"criterion","name":"Criteria","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*jZ3G7NsbVhRP6sGX.png","originalWidth":1500,"originalHeight":722,"externalSrc":"http://www.selectbesthost.com/wp-content/uploads/2016/12/criteria-to-choose-right-domain-name.png"}},"type":"Tag"},{"slug":"jpa","name":"Jpa","postCount":1000,"metadata":{"postCount":1000,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"},{"slug":"sql","name":"Sql","postCount":30257,"metadata":{"postCount":30257,"coverImage":{"id":"1*vixP1avfXgfHjX-TsA2iBw.png","originalWidth":720,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b","alts":[{"type":3,"url":"medium://p/761ce278bc7b"},{"type":2,"url":"medium://p/761ce278bc7b"}],"httpStatus":200}],"version":"0.3","generatedAt":1505732993659},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":12,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"jpa-criteria-api-by-samples-part-i","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1285254089000,"visibility":0,"uniqueSlug":"jpa-criteria-api-by-samples-part-i-6973256e5ee0","previewContent":{"bodyModel":{"paragraphs":[{"name":"fce1","type":3,"text":"JPA Criteria API by samples — Part-I","markups":[],"alignment":1},{"name":"7b2f","type":1,"text":"Although examples are pretty much simple it will help you with finalized version of JPA 2.0 API.","markups":[],"alignment":1},{"name":"ceb6","type":1,"text":"For Part II please read JPA Criteria API by samples — Part-II","markups":[{"type":3,"start":24,"end":61,"href":"https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/09/23/jpa-criteria-api-by-samples-part-i/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"fce1","type":3,"text":"JPA Criteria API by samples — Part-I","markups":[]},{"name":"7b2f","type":1,"text":"Although examples are pretty much simple it will help you with finalized version of JPA 2.0 API.","markups":[]},{"name":"ceb6","type":1,"text":"For Part II please read JPA Criteria API by samples — Part-II","markups":[{"type":3,"start":24,"end":61,"href":"https://medium.com/altuure/jpa-criteria-api-by-samples-part-ii-761ce278bc7b","title":"","rel":"","anchorType":0}]},{"name":"d530","type":1,"text":"and in this examples in my opinion building query by programming is not so easy and maintainable but still possible.","markups":[]},{"name":"8977","type":1,"text":"PS…","markups":[]}],"sections":[{"name":"2d05","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"1bdfa77ef3b8":{"id":"1bdfa77ef3b8","versionId":"5d98953349d1","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"hibernate criteria API bug: unnecessary fetch","detectedLanguage":"en","latestVersion":"5d98953349d1","latestPublishedVersion":"5d98953349d1","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303335636,"updatedAt":1529087977064,"acceptedAt":0,"firstPublishedAt":1285108244000,"latestPublishedAt":1505303499740,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":217,"imageCount":0,"readingTime":0.8188679245283019,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":0,"isBookmarked":false,"tags":[{"slug":"notes","name":"Notes","postCount":9406,"metadata":{"postCount":9406,"coverImage":{"id":"0*Zo4LCx4R4cY12qrs","originalWidth":1776,"originalHeight":1184,"isFeatured":true,"unsplashPhotoId":"CxYHfBkC0vs"}},"type":"Tag"},{"slug":"hibernate","name":"Hibernate","postCount":1166,"metadata":{"postCount":1166,"coverImage":{"id":"0*XTYCNSOd9EClPnfE","originalWidth":4608,"originalHeight":3072,"isFeatured":true,"unsplashPhotoId":"uAFjFsMS3YY"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"http://opensource.atlassian.com/projects/hibernate/browse/HHH-3524","alts":[],"httpStatus":0},{"url":"https://forums.hibernate.org/viewtopic.php?f=1&t=962905","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1505303500827},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":0,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"hibernate-criteria-api-bug-unnecessary-fetch","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1285108244000,"visibility":0,"uniqueSlug":"hibernate-criteria-api-bug-unnecessary-fetch-1bdfa77ef3b8","previewContent":{"bodyModel":{"paragraphs":[{"name":"01e5","type":3,"text":"hibernate criteria API bug: unnecessary fetch","markups":[],"alignment":1},{"name":"dd16","type":1,"text":"Although this is an important, it is a hidden bug unless you trace you generated SQL for hibernate.","markups":[],"alignment":1},{"name":"defe","type":1,"text":"simply the two lines of code below should generate same SQL","markups":[],"alignment":1},{"name":"d501","type":8,"text":"Criteria rootCriteria =…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/09/21/hibernate-criteria-api-bug-unnecessary-fetch/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"01e5","type":3,"text":"hibernate criteria API bug: unnecessary fetch","markups":[]},{"name":"dd16","type":1,"text":"Although this is an important, it is a hidden bug unless you trace you generated SQL for hibernate.","markups":[]},{"name":"defe","type":1,"text":"simply the two lines of code below should generate same SQL","markups":[]},{"name":"d501","type":8,"text":"Criteria rootCriteria = session.createCriteria(OrderItem.class);\n        Criteria criteria = rootCriteria.createCriteria(\"order\").createCriteria(\"customer\")…","markups":[]}],"sections":[{"name":"7e0d","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"45d0d39f01ac":{"id":"45d0d39f01ac","versionId":"b3701ea3c9de","creatorId":"c08b7e51cfcc","homeCollectionId":"3c59c0e74a97","title":"How to get Generic Metadata from a Class at Runtime","detectedLanguage":"en","latestVersion":"b3701ea3c9de","latestPublishedVersion":"b3701ea3c9de","hasUnpublishedEdits":false,"latestRev":2,"createdAt":1505303351389,"updatedAt":1514084893909,"acceptedAt":0,"firstPublishedAt":1283238020000,"latestPublishedAt":1505303493720,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":495,"imageCount":0,"readingTime":1.8679245283018868,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":0,"isBookmarked":false,"tags":[{"slug":"generics","name":"Generics","postCount":1226,"metadata":{"postCount":1226,"coverImage":{"id":"1*BD6WOE-DM1QpZyp3wDS67w.png","originalWidth":784,"originalHeight":334,"isFeatured":true}},"type":"Tag"},{"slug":"java","name":"Java","postCount":71190,"metadata":{"postCount":71190,"coverImage":{"id":"0*Sfa52QZoCyud0yNY","originalWidth":5507,"originalHeight":3098,"isFeatured":true,"unsplashPhotoId":"xrVDYZRGdw4"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[],"version":"0.3","generatedAt":1505303494151},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":0,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"how-to-get-generic-metadata-from-a-class-at-runtime","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":1283238020000,"visibility":0,"uniqueSlug":"how-to-get-generic-metadata-from-a-class-at-runtime-45d0d39f01ac","previewContent":{"bodyModel":{"paragraphs":[{"name":"61fd","type":3,"text":"How to get Generic Metadata from a Class at Runtime","markups":[],"alignment":1},{"name":"dee9","type":1,"text":"Here you can see how to traverse the runtime information to get this information. You Can simply traverse the inheritance tree ofr the class and get the metadata of the generic definition. Somthing like","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"3c59c0e74a97","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"http://www.altuure.com/2010/08/31/how-to-get-generic-metadata-from-a-class-at-runtime/","mediumUrl":"","migrationId":"1089ee4f0cc7","notifyFollowers":false,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"61fd","type":3,"text":"How to get Generic Metadata from a Class at Runtime","markups":[]},{"name":"dee9","type":1,"text":"Here you can see how to traverse the runtime information to get this information. You Can simply traverse the inheritance tree ofr the class and get the metadata of the generic definition. Somthing like","markups":[]},{"name":"6749","type":8,"text":"public static Type[] getGenericDefinitons(Class classFrom, Class class1) ;\nType[] types=getGenericDefinitons(MockClass1.class,GenericInterface.class);//[String.class,Long.class,Integer.class] expected","markups":[]},{"name":"1f77","type":8,"text":"First The Sample Cases :","markups":[]},{"name":"2756","type":8,"text":"…","markups":[]}],"sections":[{"name":"c5f6","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"/_/api/collections/3c59c0e74a97/stream","next":{"to":"1283238020000","ignoredIds":[],"page":2}},"collection":{"id":"3c59c0e74a97","name":"altuure","slug":"altuure","tags":["SOFTWARE DEVELOPMENT","JAVA"],"creatorId":"c08b7e51cfcc","description":"Continous Developer Blog","shortDescription":"Continous Developer Blog","image":{"imageId":"1*j77IXXuj6pdkTs0Hk8WhYw.jpeg","filter":"","backgroundSize":"","originalWidth":100,"originalHeight":105,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":6,"activeAt":1505303533428},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"twitterUsername":"altuure","publicEmail":"altuure@altuure.com","sections":[{"type":2,"collectionHeaderMetadata":{"title":"altuure","description":"yyy","backgroundImage":{},"logoImage":{},"alignment":2,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":6,"number":10,"postIds":["3d53cb9cf653","cb30f44f899","681f7e2dcf0a","5a2820e1926","6e8c102d18f7","5a8ee6355591","761ce278bc7b","6973256e5ee0","1bdfa77ef3b8","45d0d39f01ac"]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF1A8917","point":0},{"color":"#FF11800E","point":0.1},{"color":"#FF0F730C","point":0.2},{"color":"#FF095407","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE8F3E8","point":0.1},{"color":"#FFE8F3E8","point":0.2},{"color":"#FFD1E7D1","point":0.6},{"color":"#FFA3D0A2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF095407","point":0},{"color":"#FF0F730C","point":0.1},{"color":"#FF11800E","point":0.2},{"color":"#FF1A8917","point":1}],"backgroundColor":"#FF000000"}},"navItems":[],"colorBehavior":1,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"altuure","description":"yyy","backgroundImage":{},"logoImage":{},"alignment":2,"layout":6},"subscriberCount":6,"tagline":"Continous Developer Blog","polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"type":"Collection"},"header":{"title":"altuure","description":"yyy","backgroundImage":{},"logoImage":{},"alignment":2,"layout":6},"streamItems":[{"createdAt":1708014186006,"randomId":"c9c0da171e54","section":{"items":[{"post":{"postId":"3d53cb9cf653"},"itemType":"post"},{"post":{"postId":"cb30f44f899"},"itemType":"post"},{"post":{"postId":"681f7e2dcf0a"},"itemType":"post"},{"post":{"postId":"5a2820e1926"},"itemType":"post"},{"post":{"postId":"6e8c102d18f7"},"itemType":"post"},{"post":{"postId":"5a8ee6355591"},"itemType":"post"},{"post":{"postId":"761ce278bc7b"},"itemType":"post"},{"post":{"postId":"6973256e5ee0"},"itemType":"post"},{"post":{"postId":"1bdfa77ef3b8"},"itemType":"post"},{"post":{"postId":"45d0d39f01ac"},"itemType":"post"}],"layout":6},"itemType":"section","type":"StreamItem"}]})
// ]]></script><script type="text/javascript">(function(b,r,a,n,c,h,_,s,d,k){if(!b[n]||!b[n]._q){for(;s<_.length;)c(h,_[s++]);d=r.createElement(a);d.async=1;d.src="https://cdn.branch.io/branch-latest.min.js";k=r.getElementsByTagName(a)[0];k.parentNode.insertBefore(d,k);b[n]=h}})(window,document,"script","branch",function(b,r){b[r]=function(){b._q.push([r,arguments])}},{_q:[],_v:1},"addListener applyCode autoAppIndex banner closeBanner closeJourney creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setBranchViewData setIdentity track validateCode trackCommerceEvent logEvent".split(" "), 0); branch.init('key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm', {'no_journeys': true, 'disable_exit_animation': true, 'disable_entry_animation': true, 'tracking_disabled':  false }, function(err, data) {});</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v84a3a4012de94ce1a686ba8c167c359c1696973893317" integrity="sha512-euoFGowhlaLqXsPWQ48qSkBSCFs3DPRyiwVu3FjR96cMPx+Fr+gpWRhIafcHwqwCqWS42RZhIudOvEI+Ckf6MA==" data-cf-beacon='{"rayId":"855ee4b58a9d2a7a","b":1,"version":"2024.2.0","token":"0b5f665943484354a59c39c6833f7078"}' crossorigin="anonymous"></script>
</body></html>