<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hello,<div><br></div><div>In the Fi-Ware  EU research project  ( <a href="http://www.fi-ware.org">http://www.fi-ware.org</a> ) we have been developing a version of Horizon fully javascript based (using backbone.js) that have a much better user experience, keeping most of the look and feel. Some of the functionality is packed into a pure javascript library  called Jstack (  <a href="https://github.com/ging/jstack">https://github.com/ging/jstack</a> ). </div><div><br></div><div>It includes the full horizon functionality and some extras for the project. </div><div><br></div><div>It is open source ( <a href="https://github.com/ging/fi-ware-cloud-portal">https://github.com/ging/fi-ware-cloud-portal</a> ) and we would love to contribute it to Openstack and make it evolve within the OpenStack  community. </div><div><br></div><div>How do you think we may proceed on this?</div><div><br></div><div>Best Regards</div><div><br></div><div>Joaquín Salvachúa</div><div><br></div><div><br></div><div><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); font-family: Helvetica;  font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="margin: 0px; font-size: 14px; ">------------------------------------------------------------------------ </div><div style="margin: 0px; font-size: 14px; ">Joaquin Salvachua               tel: +34 91 549 57 00  x.3026</div><div style="margin: 0px; font-size: 14px; ">Associated Professor                 +34 91 549 57 62  x.3026</div><div style="margin: 0px; font-size: 14px; ">dpt. Telematica                                                </div><div style="margin: 0px; font-size: 14px; ">E.T.S.I. Telecomunicacion</div><div style="margin: 0px; font-size: 14px; ">Ciudad Universitaria S/N         fax: +34 91 336 73 33 </div><div style="margin: 0px; font-size: 14px; ">E-28040  MADRID   SPAIN</div><div style="margin: 0px; font-size: 14px; min-height: 17px; "><br></div><div style="margin: 0px; font-size: 14px; ">mailto:<a href="mailto:jsalvachua@dit.upm.es"><font class="Apple-style-span" color="#0022E4">joaquin.salvachua@upm.es</font></a> </div><div style="margin: 0px; "><span class="Apple-style-span" style="font-size: 14px; ">--------------------------------------------------------------------------</span></div></div><div><br></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br><div><div>El 19/08/2014, a las 03:40, Gabriel Hurley <<a href="mailto:Gabriel.Hurley@nebula.com">Gabriel.Hurley@nebula.com</a>> escribió:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div lang="EN-US" link="#0563C1" vlink="#954F72" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="WordSection1" style="page: WordSection1;"><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">At the point at which the Horizon project first began (during the Cactus, I believe) the handful of folks working on it wanted a Python web framework that would get them up and running as fast as possible. That meant lots of built-in, “batteries-included” features so they didn’t need to reinvent a bunch of wheels; and that also meant something they had at least passing familiarity with. So they chose Django.<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Speaking from personal opinion at this point (and as a former Horizon PTL and Django core developer): Flask is good for writing APIs or very simple sites, but not for large webapps. They would have had to write a ton of code for things other frameworks have built-in. And Pylons and Zope don’t have nearly the base of community, resources, or documentation that Django does. Twisted would have been another option, but the event-driven model of Twisted is hard for many people to wrap their heads around and wasn’t appropriate at the time.<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">All things considered I think the choice of Django was relatively sound (I had nothing to do with the original choice). It’s allowed the project to grow and scale effectively over the last 3+ years.<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">At this point, though, there’s a clear demand for a more responsive and real-time dashboard experience, and that generally means moving as much as possible into a client-side JavaScript-based webapp. That’s why the Horizon team has been making efforts to move towards things like angular.js and socket.io to help bring the next era of modern Horizon functionality. It’s not a simple or easy transition, but as that transition takes place a vast amount of the Django code will likely go away.<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">I hope that helps shed some light on the historical reason for “why Django” as well as why it may matter less that it was Django and not something else over time.<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">All the best,<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="margin: 0in 0in 0.0001pt 27pt; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: -0.25in;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><span>-<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">         <span class="Apple-converted-space"> </span></span></span></span><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Gabriel<o:p></o:p></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"> </span></div><div style="border-style: none none none solid; border-left-color: blue; border-left-width: 1.5pt; padding: 0in 0in 0in 4pt;"><div><div style="border-style: solid none none; border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: 3pt 0in 0in;"><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><b><span style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><span class="Apple-converted-space"> </span>Guillermo Alvarado [<a href="mailto:guillermoalvarado89@gmail.com">mailto:guillermoalvarado89@gmail.com</a>]<span class="Apple-converted-space"> </span><br><b>Sent:</b><span class="Apple-converted-space"> </span>Monday, August 18, 2014 4:20 PM<br><b>To:</b><span class="Apple-converted-space"> </span><a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br><b>Subject:</b><span class="Apple-converted-space"> </span>[Openstack] Why Horizon use Django instead Flask or other?<o:p></o:p></span></div></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;">Hello,<o:p></o:p></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;">I am wondering why Horizon is built in Django instead other Python Framework Like Pylons, Flask, Zope or oher ?<o:p></o:p></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;">Thanks for your time!<o:p></o:p></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;">~GA<o:p></o:p></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></div></div></div></div></div>_______________________________________________<br>Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>Post to     : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a></div></blockquote></div><br></div></body></html>