{"id":420,"date":"2013-09-30T04:49:23","date_gmt":"2013-09-30T04:49:23","guid":{"rendered":"http:\/\/corneliadavis.com\/blog\/?p=420"},"modified":"2013-09-30T04:49:23","modified_gmt":"2013-09-30T04:49:23","slug":"intel-developer-forum-hackathon","status":"publish","type":"post","link":"https:\/\/corneliadavis.com\/blog\/2013\/09\/30\/intel-developer-forum-hackathon\/","title":{"rendered":"Intel Developer Forum Hackathon"},"content":{"rendered":"<p>During a conference-rich week two weeks ago, <a href=\"http:\/\/www.gopivotal.com\">Pivotal<\/a> was invited to participate in a coding contest that was a part of the <a href=\"http:\/\/www.intel.com\/content\/www\/us\/en\/intel-developer-forum-idf\/san-francisco\/2013\/idf-2013-san-francisco.html\">Intel Developer Forum<\/a> (IDF) held at Moscone.\u00a0 The event hosted 15-20 college students, forming two teams that would compete against an Intel team; <strong><span style=\"text-decoration: underline;\">the task<\/span><\/strong>: build an innovative application for junior high math students. The main thing the applications would be judged on was cloud-readiness, and this is where Pivotal came in &#8211; the applications would be deployed to <a href=\"http:\/\/www.cloudfoundry.com\/\">Cloud Foundry<\/a>.\u00a0 I had the great pleasure of representing Pivotal, Pivotal Labs and Cloud Foundry at this event and it was a blast!<\/p>\n<p>The event spanned two half days with official coding hours from 11-3 each day, though I heard that an all-nighter might have transpired between the two. The kids (and given that most are roughly my son\u2019s age, I will call them kids ;-)) almost all came from <a href=\"http:\/\/www.contracosta.edu\/\">Contra Costa College<\/a> where they have had the great fortune of being taught by a fantastic <a href=\"http:\/\/www.linkedin.com\/in\/tompmurphy\">Professor Tom Murphy<\/a>, who was also in attendance. These budding programmers had prior experience with HTML 5 and javascript, and the teams included designers as well. Intel, who have been engaged with Cloud Foundry for some time, brought with them some brand new, just announced at the IDF, hardware, onto which they deployed Cloud Foundry \u2013 that is, they stood up a private cloud for the event.<\/p>\n<p>The team\u2019s submissions would be judged on certain criteria including:<\/p>\n<ul>\n<li>Design for failure<\/li>\n<li>Stateless computing<\/li>\n<li>Scale out (not up)<\/li>\n<li>Event driven<\/li>\n<li>Web services<\/li>\n<li>Security<\/li>\n<li>Prefer eventual consistency<\/li>\n<li>DevOps\/NoOps<\/li>\n<\/ul>\n<p>I\u2019d like to share several reflections:<\/p>\n<p>One of the main things that I learned from the experience is that thinking in terms of distributed systems not is immediate.\u00a0 Well, duh &#8211; of course it is not.\u00a0 It made me think back to my days in school where the initial classes were introductory programming, data structures and algorithms, and computer architecture.\u00a0 In chatting with these students, those are the same courses they have been taking.\u00a0 I think it\u2019s inarguable that a course in distributed computing MUST be a part of any undergraduate computer science curriculum today (but I\u2019m not sure that it is??).\u00a0 And it needs to come early. When I was in graduate school at IU I often TA\u2019d the first course that computer science majors took, an Intro to Programming course taught in Scheme. This was brilliant because, in part due to the nature of the language, they are taught recursion in week 3 (as opposed to week 13 when I took it in my intro Pascal programming course) and it turns out not to be hard (in week 13 it was hard for a lot of my fellow students). Recursion became a foundation for them, not an add-on. I\u2019d like to see distributed computing be a part of that foundation today.<\/p>\n<p>Because of former training and experience the students all built their applications to run HTML 5 and javascript in the browser. The UIs these kids built were way cool, with spaceships shooting answers at meteors that carried math problems, for example, and because they are standards-compliant, will work in pretty much any browser.\u00a0 Major Kudos to Tom Murphy for laying this incredibly valuable foundation.<\/p>\n<p>In the bucket of \u201cstateless computing\u201d we detailed that state should not be stored within the compute node. While the game play ran entirely in the browser, things like user profiles and high scores would be stored in some database.\u00a0 Intel had stood up their private PaaS with several choices for persistence, including both relational and NoSQL databases.\u00a0 It probably won\u2019t surprise you to hear that the Intel team stored in relational and the student teams both chose MongoDB. I wish I had been able to dig in a bit more on why they made this choice, but by the time the question came up we were singularly focused on get things working. (If you were on one of the student teams, please post a comment and tell us why you made that choice.)<\/p>\n<p>In the end, neither student team was able to connect their browser-based application to cloud-based persistence (entirely our fault for not anticipating what would be needed here), though they did get the applications pushed into the cloud, which on it\u2019s own is pretty cool.\u00a0 The first team to get their app pushed into Cloud Foundry, using the <a href=\"https:\/\/github.com\/cloudfoundry\/cli\">cf cli<\/a>, was literally jumping up and down and whooping and hollering.\u00a0 They didn\u2019t have to stand up a VM, load the OS, install an app server and then deploy their app \u2013 they just wrote their app and pushed it to the cloud.\u00a0 That is PaaS.<\/p>\n<p>Finally, I want to extend congratulations to <a href=\"https:\/\/communities.intel.com\/people\/CatherineSpence\">Cathy Spence<\/a> and the whole Intel team for the event. While I was there I came to understand that Intel does these types of events quite regularly and while it\u2019s probably a bit tricky to quantify the ROI, there is no question that Intel benefits in terms of positive PR and recruiting.\u00a0 And the benefit to these students is great!\u00a0 I\u2019d really love to see my parent companies, EMC and VMWare, take a lesson here, and while Pivotal is much smaller and may lack some resources, I\u2019m certain there are ways we can creatively engage in a similar manner.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During a conference-rich week two weeks ago, Pivotal was invited to participate in a coding contest that was a part of the Intel Developer Forum (IDF) held at Moscone.  The event hosted 15-20 college students, forming two teams that would compete against an Intel team; the task: build an innovative application for junior high math students. The main thing the applications would be judged on was cloud-readiness, and this is where Pivotal came in &#8211; the applications would be deployed to Cloud Foundry. <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[53,55],"class_list":["post-420","post","type-post","status-publish","format-standard","hentry","category-events","tag-cloudfoundry","tag-community"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/posts\/420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/comments?post=420"}],"version-history":[{"count":0,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/posts\/420\/revisions"}],"wp:attachment":[{"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/media?parent=420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/categories?post=420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/corneliadavis.com\/blog\/wp-json\/wp\/v2\/tags?post=420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}