41554 blogs · [ { "id": "01a08775-76d2-71cd-bc83-f2545c695ead", "title": "Best Practices when Asking for Help", "url": "https://etoews.github.io/blog/2026/03/07/help/", "published_at": "2026-03-07T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545c9a7822", "title": "AWS Account Cleaner", "url": "https://etoews.github.io/blog/2022/09/03/aws-account-cleaner/", "published_at": "2022-09-03T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545ce93190", "title": "Diagramming is a Solved Problem", "url": "https://etoews.github.io/blog/2022/01/12/diagramming-is-a-solved-problem/", "published_at": "2022-01-12T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545cf750c1", "title": "DevOps Learning Resources", "url": "https://etoews.github.io/blog/2021/08/25/devops-learning-resources/", "published_at": "2021-08-25T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545d87f7b8", "title": "Semantic Version Comparison in a Jenkins pipeline", "url": "https://etoews.github.io/blog/2020/02/18/semver-comparison-in-a-jenkins-pipeline/", "published_at": "2020-02-18T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545dce94e8", "title": "GitOps is Reconciling a Desired State in Git with a Runtime Environment", "url": "https://etoews.github.io/blog/2019/11/07/gitops-is-reconciling-a-desired-state-in-git-with-a-runtime-environment/", "published_at": "2019-11-07T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545e2bfe98", "title": "GitOps Driven Deployments on OpenShift", "url": "https://etoews.github.io/blog/2019/04/16/gitops-driven-deployments-on-openshift/", "published_at": "2019-04-16T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545f08f06b", "title": "Microsoft Teams Norms", "url": "https://etoews.github.io/blog/2019/01/18/2019-01-18-microsoft-teams-norms/", "published_at": "2019-01-18T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f2545f5a88e1", "title": "OpenShift Learning Resources", "url": "https://etoews.github.io/blog/2018/12/03/openshift-learning-resources/", "published_at": "2018-12-03T10:00:00+00:00" }, { "id": "01a08775-76d2-71cd-bc83-f25460548aed", "title": "Managing Environment Variables and Secrets in Kubernetes", "url": "https://etoews.github.io/blog/2017/08/27/managing-env-vars-and-secrets-in-kubernetes/", "published_at": "2017-08-27T10:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0238853ae1", "title": "Inject an Executable Script into a Container in Kubernetes", "url": "https://etoews.github.io/blog/2017/07/29/inject-an-executable-script-into-a-container-in-kubernetes/", "published_at": "2017-07-29T10:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02379ae3e1", "title": "Principles for a Successful Developer Workshop", "url": "https://etoews.github.io/blog/2017/06/19/principles-for-a-successful-developer-workshop/", "published_at": "2017-06-19T10:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0236e5a369", "title": "Run Once DaemonSet on Kubernetes", "url": "https://etoews.github.io/blog/2017/05/13/run-once-daemonset-on-kubernetes/", "published_at": "2017-05-13T10:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02361b8299", "title": "Docker for Mac Configuration Persistence", "url": "https://etoews.github.io/blog/2017/05/07/docker-for-mac-configuration-persistence/", "published_at": "2017-05-07T10:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e023522680d", "title": "Joining 100 nodes to a Docker Swarm", "url": "https://etoews.github.io/blog/2016/08/05/joining-100-nodes-to-a-docker-swarm/", "published_at": "2016-08-05T10:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0234d85e0b", "title": "Develop a Docker Authorization Plugin in Python", "url": "https://etoews.github.io/blog/2016/07/30/develop-a-docker-authz-plugin-in-python/", "published_at": "2016-07-30T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0234ca17da", "title": "Top 3 Sessions at DockerCon 2016", "url": "https://etoews.github.io/blog/2016/07/04/dockercon-2016/", "published_at": "2016-07-04T00:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e023420ae93", "title": "DNS Round Robin in Docker 1.11", "url": "https://etoews.github.io/blog/2016/04/15/dns-round-robin-in-docker-1-11/", "published_at": "2016-04-15T00:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0233ca5873", "title": null, "url": "https://etoews.github.io/blog/2016/03/18/carina/", "published_at": "2016-03-18T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02331ace9a", "title": "State of the OpenStack API Working Group: Liberty Edition", "url": "https://etoews.github.io/blog/2015/05/14/state-of-the-api-wg-liberty-edition/", "published_at": "2015-05-14T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0232c37a7f", "title": "A DevStack For All Seasons", "url": "https://etoews.github.io/blog/2015/04/16/a-devstack-for-all-seasons/", "published_at": "2015-04-16T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02321b3cf1", "title": null, "url": "https://etoews.github.io/blog/2015/03/19/clojurebridge/", "published_at": "2015-03-19T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02313c863a", "title": "Forming the OpenStack API Working Group", "url": "https://etoews.github.io/blog/2014/10/16/openstack-api-working-group/", "published_at": "2014-10-16T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02309b30c6", "title": "A First Look at Panamax", "url": "https://etoews.github.io/blog/2014/08/30/a-first-look-at-panamax/", "published_at": "2014-08-30T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0230670980", "title": "Walk n’ Doc", "url": "https://etoews.github.io/blog/2014/06/24/walk-n-doc/", "published_at": "2014-06-24T14:00:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e023024eb89", "title": "Jekyll as a Service", "url": "https://etoews.github.io/blog/2014/05/18/jekyll-as-a-service/", "published_at": "2014-05-18T14:01:05+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022f97ec35", "title": "DevStack Icehouse on the Rackspace Cloud", "url": "https://etoews.github.io/blog/2014/04/18/devstack-icehouse-on-the-rackspace-cloud/", "published_at": "2014-04-18T14:01:05+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022f5a9a25", "title": "South By Slash West", "url": "https://etoews.github.io/blog/2014/03/23/south-by-slash-west/", "published_at": "2014-03-23T19:33:07+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022f46a7a4", "title": "Fixing my OpenStack Gerrit Permission denied (publickey) problem", "url": "https://etoews.github.io/blog/2014/02/12/fixing-my-openstack-gerrit-problem/", "published_at": "2014-02-12T15:50:58+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022e8a60db", "title": "What Developers Need From API Method Docs", "url": "https://etoews.github.io/blog/2014/01/20/what-developers-need-from-api-method-docs/", "published_at": "2014-01-20T18:29:34+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022e2f0e65", "title": "The Dual Advantage of Multi-Cloud Toolkits", "url": "https://etoews.github.io/blog/2014/01/17/the-dual-advantage-of-multi-cloud-toolkits/", "published_at": "2014-01-17T05:40:17+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022de92dd6", "title": "jclouds 1.7.0 Released With Support for OpenStack Queuing, Networks, and Rackspace Auto Scale", "url": "https://etoews.github.io/blog/2014/01/09/jclouds-1-7-0-released/", "published_at": "2014-01-09T17:08:55+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022d36bb39", "title": "DevStack Havana on the Rackspace Cloud", "url": "https://etoews.github.io/blog/2013/12/18/devstack-havana-on-the-rackspace-cloud/", "published_at": "2013-12-18T15:57:14+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022c7992c2", "title": "Whistle While You HackTX", "url": "https://etoews.github.io/blog/2013/11/19/whistle-while-you-hacktx/", "published_at": "2013-11-19T18:18:17+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022c063d04", "title": "Plates Spun at the OpenStack Summit", "url": "https://etoews.github.io/blog/2013/11/12/plates-spun-at-the-openstack-summit/", "published_at": "2013-11-12T23:31:03+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022b21a812", "title": "jclouds is an Apache Top Level Project", "url": "https://etoews.github.io/blog/2013/11/03/jclouds-is-an-apache-tlp/", "published_at": "2013-11-03T02:35:48+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022b0113b3", "title": "Spinning Plates at the OpenStack Summit in Hong Kong", "url": "https://etoews.github.io/blog/2013/10/16/spinning-plates-openstack-summit-hong-kong/", "published_at": "2013-10-16T16:51:16+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022a64e520", "title": "jclouds 1.6.2 released with support for OpenStack Trove", "url": "https://etoews.github.io/blog/2013/10/10/jclouds-1-6-2-released-with-support-for-openstack-trove/", "published_at": "2013-10-10T16:31:54+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022a56a415", "title": "Broken Wiki Theory", "url": "https://etoews.github.io/blog/2013/09/11/broken-wiki-theory/", "published_at": "2013-09-11T02:41:21+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022957bf86", "title": "Vote Vote Vote", "url": "https://etoews.github.io/blog/2013/08/21/vote-vote-vote/", "published_at": "2013-08-21T16:06:12+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02286b3c0e", "title": "Keep the Cloud Honest", "url": "https://etoews.github.io/blog/2013/07/31/keep-the-cloud-honest/", "published_at": "2013-07-31T14:44:14+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0228410f5d", "title": "Apache jclouds at OSCON 2013", "url": "https://etoews.github.io/blog/2013/07/18/apache-jclouds-at-oscon-2013/", "published_at": "2013-07-18T19:03:38+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0227d6345f", "title": "jclouds 1.6.1 Released With New Maven groupId", "url": "https://etoews.github.io/blog/2013/06/26/jclouds-1-6-1-released-with-new-maven-groupid/", "published_at": "2013-06-26T02:35:57+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022715b171", "title": "Fix Minecraft Freeze on Mac OS X", "url": "https://etoews.github.io/blog/2013/06/23/fix-minecraft-freeze-on-mac-os-x/", "published_at": "2013-06-23T21:54:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0226e006e4", "title": "jclouds Manual Authentication with OpenStack", "url": "https://etoews.github.io/blog/2013/06/17/jclouds-manual-authentication-with-openstack/", "published_at": "2013-06-17T17:40:20+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0226656447", "title": "The OpenStack Community Welcomes Developers in All Programming Languages", "url": "https://etoews.github.io/blog/2013/06/12/the-openstack-community-welcomes-developers-in-all-programming-languages/", "published_at": "2013-06-12T14:06:11+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02258481b1", "title": "Docker on the Rackspace Cloud", "url": "https://etoews.github.io/blog/2013/06/10/docker-on-the-rackspace-cloud/", "published_at": "2013-06-10T18:20:23+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0225822995", "title": "Swift/Cloud Files Cross Origin Resource Sharing Container with jclouds", "url": "https://etoews.github.io/blog/2013/06/04/swift-cloud-files-cross-origin-resource-sharing-container-with-jclouds/", "published_at": "2013-06-04T18:42:41+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022575f822", "title": "jclouds at Gluecon 2013", "url": "https://etoews.github.io/blog/2013/05/08/jclouds-gluecon-2013/", "published_at": "2013-05-08T20:10:54+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0224939b75", "title": "jclouds 1.6.0 and the move to the ASF", "url": "https://etoews.github.io/blog/2013/05/02/jclouds-1-6-0-and-the-move-to-the-asf/", "published_at": "2013-05-02T20:36:39+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0224395f9a", "title": "Presentation Patterns", "url": "https://etoews.github.io/blog/2013/04/04/presentation-patterns/", "published_at": "2013-04-04T00:15:08+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0223c9dc30", "title": "We Wrote an OpenStack Operations Guide in 5 Days!", "url": "https://etoews.github.io/blog/2013/03/08/we-wrote-openstack-ops-guide-5-days/", "published_at": "2013-03-08T01:55:02+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0222d23d55", "title": "We’re Writing an OpenStack Operations Manual in 5 Days!", "url": "https://etoews.github.io/blog/2013/02/21/were-writing-an-openstack-operations-manual-in-5-days/", "published_at": "2013-02-21T14:58:23+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0222542b38", "title": "Swift Only with OpenStack DevStack on the Rackspace Cloud", "url": "https://etoews.github.io/blog/2013/02/18/swift-only-with-openstack-devstack-on-the-rackspace-cloud/", "published_at": "2013-02-18T23:10:16+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e022175ccb9", "title": "Netflix Aims to be Scalable, Functional, and Portable (or How to Run a Meetup)", "url": "https://etoews.github.io/blog/2013/02/14/netflix-aims-to-be-scalable-functional-and-portable-or-how-to-run-a-meetup/", "published_at": "2013-02-14T02:41:51+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0220eb87a4", "title": "Innovation in the jclouds Community", "url": "https://etoews.github.io/blog/2013/02/11/innovation-in-the-jclouds-community/", "published_at": "2013-02-11T20:53:36+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0220a77a09", "title": "An Annotated GitHub Workflow", "url": "https://etoews.github.io/blog/2013/01/25/an-annotated-github-workflow/", "published_at": "2013-01-25T15:11:56+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021fe911e7", "title": "jclouds, Netflix, and appsworld in San Francisco", "url": "https://etoews.github.io/blog/2013/01/14/jclouds-netflix-and-appsworld-in-san-francisco/", "published_at": "2013-01-14T20:27:02+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021f117781", "title": "What is a Developer Advocate?", "url": "https://etoews.github.io/blog/2012/12/28/what-is-a-developer-advocate/", "published_at": "2012-12-28T18:06:42+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021e7b1f07", "title": "Keep Up-To-Date With Changes To The Rackspace APIs", "url": "https://etoews.github.io/blog/2012/12/21/keep-up-to-date-with-changes-to-the-rackspace-apis/", "published_at": "2012-12-21T22:41:16+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021db94bb6", "title": null, "url": "https://etoews.github.io/blog/2012/12/13/my-very-minor-contribution-to-openstack-bug-squashing-day/", "published_at": "2012-12-13T22:23:02+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021cdafcee", "title": null, "url": "https://etoews.github.io/blog/2012/12/10/write-that-request-for-help-but-dont-send-it-yet/", "published_at": "2012-12-10T21:44:13+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021bfba6c0", "title": null, "url": "https://etoews.github.io/blog/2012/11/20/jclouds-1-5-3-with-cinder-and-rackspace-cbs/", "published_at": "2012-11-20T21:28:47+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021bbfc560", "title": null, "url": "https://etoews.github.io/blog/2012/11/14/new-tools/", "published_at": "2012-11-14T16:52:44+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021b288fcf", "title": null, "url": "https://etoews.github.io/blog/2012/11/08/openstack-devstack-on-the-rackspace-open-cloud/", "published_at": "2012-11-08T16:47:41+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021aef7117", "title": null, "url": "https://etoews.github.io/blog/2012/10/22/sdks-and-an-openstack-grizzly-summit-wrap-up/", "published_at": "2012-10-22T17:54:42+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021aa93a9c", "title": null, "url": "https://etoews.github.io/blog/2012/10/15/introducing-the-rackspace-drg-and-sdks/", "published_at": "2012-10-15T20:36:22+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021a3acd23", "title": null, "url": "https://etoews.github.io/blog/2012/10/10/sdks-at-the-openstack-grizzly-summit/", "published_at": "2012-10-10T16:13:48+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021a0786e3", "title": null, "url": "https://etoews.github.io/blog/2012/10/03/contributing-openstack-support-to-jclouds/", "published_at": "2012-10-03T16:51:29+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0219a41349", "title": null, "url": "https://etoews.github.io/blog/2012/09/28/openstack-and-jclouds-releases/", "published_at": "2012-09-28T18:14:05+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0218c491fe", "title": null, "url": "https://etoews.github.io/blog/2012/09/08/jclouds-at-the-openstack-summit/", "published_at": "2012-09-08T21:55:04+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02186fa0ba", "title": null, "url": "https://etoews.github.io/blog/2012/09/04/jclouds-and-openstack/", "published_at": "2012-09-04T02:13:41+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0217cfe0b8", "title": null, "url": "https://etoews.github.io/blog/2012/08/18/logging-in-jclouds/", "published_at": "2012-08-18T20:01:19+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0217754f92", "title": null, "url": "https://etoews.github.io/blog/2012/08/17/get-a-token-from-rackspace/", "published_at": "2012-08-17T16:26:59+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e021750a25c", "title": null, "url": "https://etoews.github.io/blog/2012/08/15/getting-started-with-jclouds/", "published_at": "2012-08-15T15:51:10+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02166699ed", "title": null, "url": "https://etoews.github.io/blog/2012/04/04/total-bottom-time/", "published_at": "2012-04-04T23:15:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e02158fcbaf", "title": null, "url": "https://etoews.github.io/blog/2011/01/03/install-a-full-development-environment-for-django-on-windows/", "published_at": "2011-01-03T00:27:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0214f38834", "title": null, "url": "https://etoews.github.io/blog/2008/08/20/estimate-sanity-check/", "published_at": "2008-08-20T07:31:00+00:00" }, { "id": "01a0cf91-7c61-726e-bfff-2e0214c2ebe4", "title": null, "url": "https://etoews.github.io/blog/2008/08/19/software-estimation-checklist/", "published_at": "2008-08-19T18:39:00+00:00" }, { "id": "01a0cf91-7c62-7211-98f1-00fb6d47c7b2", "title": null, "url": "https://etoews.github.io/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb6e0ea42c", "title": null, "url": "https://etoews.github.io/category/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb6e7da2f8", "title": null, "url": "https://etoews.github.io/page2/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb6e8d6ac5", "title": null, "url": "https://etoews.github.io/page3/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb6f4267d6", "title": null, "url": "https://etoews.github.io/page4/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb6ffa6d2b", "title": null, "url": "https://etoews.github.io/page5/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb70ca3695", "title": null, "url": "https://etoews.github.io/page6/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb718d9056", "title": null, "url": "https://etoews.github.io/page7/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb71c5733a", "title": null, "url": "https://etoews.github.io/page8/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb72082fd7", "title": null, "url": "https://etoews.github.io/page9/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb72ba0730", "title": null, "url": "https://etoews.github.io/page10/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb734f5cd7", "title": null, "url": "https://etoews.github.io/page11/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb740b9cd1", "title": null, "url": "https://etoews.github.io/page12/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb7462338d", "title": null, "url": "https://etoews.github.io/page13/", "published_at": null }, { "id": "01a0cf91-7c62-7211-98f1-00fb747f0fdc", "title": null, "url": "https://etoews.github.io/page14/", "published_at": null } ] posts Claim your blog
Back to etoews.github.io
Blog · corpus.blog/blogs/etoews.github.io/posts

etoews.github.io

etoews.github.io

2026

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2008

Undated