-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
291 lines (252 loc) · 19.9 KB
/
index.html
File metadata and controls
291 lines (252 loc) · 19.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Most popular Django sites</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="The first question we ask ourselves when we approach a new project: is Django really the best option here? ">
<meta name="author" content="7WebPages">
<meta property="og:image" content="http://7webpages.com/static/img/7web-logo-yellow.png" />
<!-- Le styles -->
<link rel="icon" type="image/png" sizes="32x32" href="http://7webpages.com/static/img/favicon.png">
<link href="http://7webpages.com/static/css/bootstrap.min.css" rel="stylesheet">
<link href="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker.min.css" rel="stylesheet">
<style>
body {
padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
<!-- This file store project specific CSS -->
<link href="http://7webpages.com/static/css/company.css" rel="stylesheet">
<!-- Article Css Design -->
<link rel="stylesheet" href="./article.css">
<!-- Use this to quickly test CSS changes in a template,
then move to company.css -->
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter19126789 = new Ya.Metrika({
id:19126789,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
} catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = "https://mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/19126789" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" id="logo" href="/">
<img src="http://7webpages.com/static/img/7web-logo-yellow.png" class="logo-img">
7WebPages
</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="" ><a href="/">Main</a></li>
<li class="" ><a href="/portfolio/">Case studies</a></li>
<li class="" ><a href="/team/">Team</a></li>
<!--
<li class="" ><a href="/contact-us/">Contacts</a></li>
-->
<li class="" ><a href="/blog/">Blog</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container">
<div itemscope itemtype="http://schema.org/NewsArticle" class="newsarticle">
<h1 itemprop="headline" class="work-title">Most popular Django sites</h1>
<img src="./images/django.jpg" alt="">
<div itemprop="articleBody" class="articlebody">
<p>The first question we ask ourselves when we approach a new project: is Django really the best option here? Even if a client is sure that the answer is confirmative. To be more certain about it, we decided to do a research on that. We wrote a script that would gather all the Django sites on the Internet (yes, we do not choose easy ways:) ) and analyse the list we receive. By this time the script is still processing and the final results will come later.</p>
<p>So we started with 5 popular sites on Django that everyone knows and we had a proof that they are currently working on Django Framework.</p>
<h3>Instagram.</h3>
<div id="instagram-logo"></div>
<img src="./images/instagram.jpg" alt="">
<p>Yes, this source of selfies and food photos was developed in Django.
Why? Instagram developers claim that choosing a technology, they were guided by three principles:</p>
<ol>
<li>
<p>Keep it very simple.</p>
</li>
<li>
<p>Don’t re-invent the wheel.</p>
</li>
<li>
<p>Go with proven and solid technologies whenever you can.</p>
</li>
</ol>
<p><strong>It’s perfect for social networks:</strong></p>
<ul>
<li>Because Django allows working efficiently with a big amount of data, here it has many images, apparently.</li>
<li>It can help to manage a large number of users and provides easy interaction between them.</li>
<li>It works well with other technologies.</li>
</ul>
<p><a href="http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances" title="http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances">Read more</a> what Instagram developers share about their technologies.</p>
<h3>The Washington Post.</h3>
<div id="washington-logo"></div>
<img src="./images/washington.jpg" alt="">
<p>Few people know that initially Django was created to develop online editions. No wonder, the most popular newspapers have Django websites. Some of them benefit from certain advantages of Django, like The New York Times, which is mostly built on pure Python and basically uses lots of other technologies. Such newspapers as The Washington Post have their site with Django backend. This is how its developers explain their choice:</p>
<ul>
<li>sites on Django handle high traffic loads;</li>
<li>providing efficient and fast performance;</li>
<li>ability to contribute to the framework so it meets one’s own specific needs (for instance, one of its first developers Adrian Holovaty (nice to come across Ukrainian surnames so often:) ) was an active contributor to Django).</li>
</ul>
<p>It also has a lot of various apps on Django, like <a href="http://projects.washingtonpost.com/congress/" title="http://projects.washingtonpost.com/congress/">US Congress Votes Database</a> or <a href="http://apps.washingtonpost.com/national/fallen/" title="http://apps.washingtonpost.com/national/fallen/">Faces of the Fallen</a>, for instance.</p>
<h3>Disqus</h3>
<div id="disqus-logo"></div>
<img src="./images/disqus-logo.jpg" alt="">
<p>Disqus also faced the problem of scalability, like Pinterest, but it continued with Django and found <a href="http://blog.disqus.com/post/62187806135/scaling-django-to-8-billion-page-views" title="http://blog.disqus.com/post/62187806135/scaling-django-to-8-billion-page-views">another way out of this problem</a>. They’ve managed to achieve 8 billion page views in 2013. And even when they needed to handle 1.5 millions concurrently connected users, 45,000 new connections per second, they also <a href="http://highscalability.com/blog/2014/4/28/how-disqus-went-realtime-with-165k-messages-per-second-and-l.html" title="http://highscalability.com/blog/2014/4/28/how-disqus-went-realtime-with-165k-messages-per-second-and-l.html">did it with Django</a>.</p>
<p>Again, they point out such benefits of Django:</p>
<ul>
<li>availability of ready solutions. However, they also stress that one needs to develop within “Django" philosophy to have it function well;</li>
<li>again, a wide community;</li>
<li>and thus easiness to find good specialists.</li>
</ul>
<p>They’ve also managed to benefit from Django, providing different smaller side services and after they extended on “<a href="https://www.youtube.com/watch?v=vkCuRFM3GVE" title="https://www.youtube.com/watch?v=vkCuRFM3GVE">How they do it when it isn’t Django</a>”, which means how they used different technologies to make them get friends with Django. <a href="https://archive.org/details/EuroPython_2014_nbkwcdlH" title="https://archive.org/details/EuroPython_2014_nbkwcdlH">They moved back to Django</a>, mainly because of its wide community and yes, due to the fact that they’ve already worked with it.</p>
<h3>Zapier</h3>
<div id="zapier-logo"></div>
<img src="./images/zapier-logo.jpg" alt="">
<p>Now we’ll move from globally popular sites to rather popular ones in certain circles. For instance, Zapier gained its glory in the business world. This service helps to connect various similar services into one. For instance, one can save G-mail attachments to Dropbox or create a Trello ticket from his calendar. </p>
<p>An interesting fact is that you can also validate that Zapier is running on Django by just opening their <a href="https://zapier.com/admin/" title="https://zapier.com/admin/">admin login page</a>. It shows a default Django interface for the admin panel.</p>
<p>From the development perspective, it’s a really fascinating one:</p>
<ul>
<li>it connects different sources (via APIs) and enables quick collaboration between different sources of information; 141 APIs have been <a href="http://thenextweb.com/insider/2014/01/15/app-automation-service-zapier-overhauls-developer-platform-speed/" title="http://thenextweb.com/insider/2014/01/15/app-automation-service-zapier-overhauls-developer-platform-speed/">added to Zapier</a> by January 2014;</li>
<li>what is more, it enables performing different actions by means of the service without switching from one app to another;</li>
<li>it enables work with a big amount of data for thousands of users.</li>
</ul>
<p>The choice of Django was based on familiarity, according to the <a href="https://zapier.com/blog/zapier-tech-stack/" title="https://zapier.com/blog/zapier-tech-stack/">article</a> by Bryan Helmig. They just chose the technology they were acquainted with. Thus, they basically chose Python/Django before working for Zapier. It should be mentioned, Bryan states that Ruby, e.g., would not be a worse choice. However, nobody has proved his point in practice:)</p>
<p>By the way, Zapier also turns to ReactJS and even prepared a small <a href="https://zapier.com/engineering/react-js-tutorial-guide-gotchas/" title="https://zapier.com/engineering/react-js-tutorial-guide-gotchas/">tutorial</a> for those who also consider it a good choice. So do we. </p>
<h3>Bitbucket</h3>
<div id="bitbucket-logo"></div>
<img src="./images/bitbucket.jpg" alt="">
<p>Bitbacket also doesn’t hide its roots, you can see Django admin panel on <a href="https://bitbucket.org/admin/" title="https://bitbucket.org/admin/">https://bitbucket.org/admin/</a></p>
<p><a href="code.djangoproject.com/wiki/djangosuccessstorybitbucket" title="code.djangoproject.com/wiki/djangosuccessstorybitbucket">This article</a> shows its developer had fallen in love with Django much earlier than the development of Bitbucket started.
However, this love continues till now. Which means it’s a true love and not the love of the kind “I was lazy to find something else, and you’re ok”. Why is that so?</p>
<ul>
<li>Its developers claim that it wouldn’t be for the Django’s wide community which keeps it fit and up to date. </li>
<li>Moreover, one doesn’t need to pay for all the apps separately, such as URL mapping.
They’re also grateful for Django’s having so many ready parts for them to use, rather than developing from scratch. That’s why they had such a short turn-around time.</li>
</ul>
<p>Concerning the drawbacks of Django, they point out its problems with “Group by” (yes, we’ve been there too:) ) expressions and a lack of flexibility in ORM usage.</p>
<h3>Django Myths</h3>
<p>At first glance, it may seem that much more sites were successfully developed on Django. They present head rushing figures with a number of users so that everybody is rushing to use Django only and nothing else can be efficient when it comes to complicated functionality.</p>
<p>Let’s slow down and gaze more attentively at these sites. At last I’ll feel a little how it’s to be a myth buster.</p>
<p><strong>Pinterest is not the best example of Django usage</strong> (I can hear some myths bumping into the wall). Its developers even claim that if they started the development now, they would have started from Flask again. And yes, they have. Since 2012 Pinterest has been running on Flask (according to <a href="https://qph.is.quoracdn.net/main-qimg-98f94f2af1d068d6addd415011959a44?convert_to_webp=true" title="https://qph.is.quoracdn.net/main-qimg-98f94f2af1d068d6addd415011959a44?convert_to_webp=true">its developers' answers</a>). Its developers <a href="https://www.quora.com/Would-Pinterest-consider-Flask-in-place-of-Django-if-it-were-starting-today" title="https://www.quora.com/Would-Pinterest-consider-Flask-in-place-of-Django-if-it-were-starting-today">claim</a> it to be much simpler than Django, and in their case it allows consuming less data. </p>
<p>Another myth turned out to be even crueller to me. I've googled looking hard for the information about <strong>how the New York Times site </strong>was written on Django. I still wonder how this myth spread on the Internet as I failed to find any information about Django usage (Pinterest was at least first developed on it). This powerful site uses a lot of different technologies, actively Python, but it must be mentioned, also Ruby on Rails. It does have some parts on Django. Its developers, for instance, obviously adore <strong>Geodjango</strong>. They've even developed <a href="http://open.blogs.nytimes.com/2013/11/01/building-the-other-races/?_r=0" title="http://open.blogs.nytimes.com/2013/11/01/building-the-other-races/?_r=0">The Other Races</a>, a special app that provides the election data from different states. In general, I can't but get amused with the work of its developers when I review this site. They are not just a powerful magazine site, but also a learning tool, providing a lot of sideapps. However, this is a proof of Python’s coolness, not Django’s. By the way, they do have an informative <a href="http://open.blogs.nytimes.com/?_r=0" title="http://open.blogs.nytimes.com/?_r=0">blog</a>: I guess it will be useful for the developers who want to be confident when they choose this or that development tool for their projects.</p>
<hr>
<h3 id="read-more">Read more:</h3>
<hr>
<div id="code">
<p>"Code." DjangoSuccessStoryBitbucket – Django. Web. 15 Dec. 2015.</p>
<p>"Code - Open Blog - The New York Times." Code - Open Blog - The New York Times. Web. 15 Dec. 2015. <a href="http://open.blogs.nytimes.com/?_r=0">http://open.blogs.nytimes.com/?_r=0</a>.</p>
<p>"How Disqus Went Realtime with 165K Messages Per Second and Less than .2 Seconds Latency - High Scalability -." How Disqus Went Realtime with 165K Messages Per Second and Less than .2 Seconds Latency - High Scalability -. Web. 15 Dec. 2015.</p>
<p>"How Zapier Uses Mailgun to Send Emails." Mailgun Blog. 18 June 2015. Web. 15 Dec. 2015. <a href="http://blog.mailgun.com/how-zapier-uses-mailgun-to-send-emails/">http://blog.mailgun.com/how-zapier-uses-mailgun-to-send-emails/</a>.</p>
<p>"Learn How Disqus Does 'It' When 'It' Isn't Django." YouTube. YouTube. Web. 15 Dec. 2015.
"News & Events." Django in Use at Washingtonpost.com. Web. 15 Dec. 2015.</p>
<p>"Scaling Django to 8 Billion Page Views." Scaling Django to 8 Billion Page Views. Web. 15 Dec. 2015.</p>
<p>"Scaling Pinterest - From 0 to 10s of Billions of Page Views a Month in Two Years - High Scalability -." Scaling Pinterest - From 0 to 10s of Billions of Page Views a Month in Two Years - High Scalability -. Web. 15 Dec. 2015.</p>
<p>"The Zapier Tech Stack." The Zapier Blog. Web. 15 Dec. 2015. <a href="https://zapier.com/blog/zapier-tech-stack/">https://zapier.com/blog/zapier-tech-stack/</a>.</p>
<p>"Websites Using Django | Five Q | Blog | Five Q." Websites Using Django | Five Q | Blog | Five Q. Web. 15 Dec. 2015.</p>
<p>"[EuroPython 2014] Adam - How Disqus Is Using Django as the Basis of Our Service Oriented Architecture : Free Download & Streaming : Internet Archive." Internet Archive. Web. 15 Dec. 2015.</p>
<p>"What Is the Technology Stack behind Pinterest?" - Quora. Web. 15 Dec. 2015. <a href="https://www.quora.com/What-is-the-technology-stack-behind-Pinterest-1">https://www.quora.com/What-is-the-technology-stack-behind-Pinterest-1</a>.
"Would Pinterest Consider Flask in Place of Django If It Were Starting Today?" - Quora. Web. 15 Dec. 2015.</p>
<p>"Zapier Overhauls Developer Platform." TNW Network All Stories RSS. 15 Jan. 2014. Web. 17 Dec. 2015. <a href="http://thenextweb.com/insider/2014/01/15/app-automation-service-zapier-overhauls-developer-platform-speed/">http://thenextweb.com/insider/2014/01/15/app-automation-service-zapier-overhauls-developer-platform-speed/</a>.</p>
<p>"What Powers Instagram: Hundreds of Instances, Dozens of Technologies." - Instagram Engineering. Web. 15 Dec. 2015.</p>
</div>
2016-02-05
<meta itemprop="datePublished" content="2016-02-05"/>
</div>
</div>
<br>
</div> <!-- /container -->
<footer class="footer hidden-sm hidden-xs">
<div class="container">
<div class="row">
<div class="col-xs-4 col-md-3 col-md-offset-1">
<ul class="list-unstyled">
<h4>Work time</h4>
<li>Our current time is 16:17
<br>
(We are available from
<br>
9:00 till 21:00)</li>
<li>Timezone GMT +2</li>
</ul>
</div>
<div class="col-xs-4 col-md-3 col-md-offset-">
<ul class="list-unstyled">
<h4>Meet in person</h4>
<li><a href="http://www.bibliotech.com.ua/">Smart Cafe "Biblioteh"</a><br><a href="https://www.google.com/maps/place/BiblioTech+smart+cafe/@50.445569,30.495229,17z/data=!4m2!3m1!1s0x0:0x193c964d5129a6c8?hl=uk">Ukraine, Kyiv,
<br>
Saksahanskogo 120</a></li>
<li><a href="mailto:info@7webpages.com">Drop us a line before</a></li>
</ul>
</div>
<div class="col-xs-4 col-md-3 col-md-offset-">
<ul class="list-unstyled">
<h4>Online</h4>
<li><a href="mailto:info@7webpages.com">info@7webpages.com</a>
<br>
(usually we respond
<br>
within several hours)</li>
</ul>
</div>
<div class="col-xs-4 col-md-2 col-md-offset-">
<ul class="list-unstyled">
<h4>Follow us</h4>
<li><a href="https://www.facebook.com/7WebPages">Facebook</a></li>
<li><a href="https://twitter.com/7WebPages">Twitter</a></li>
<li><a href="https://www.linkedin.com/company/7webpages">Linkedin</a></li>
</ul>
</div>
<div id="clearfix"></div>
<div class="col-md-12 text-center copyright">
Copyright © 2012-2016 7WebPages.
</div>
</div>
</div>
</footer>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://7webpages.com/static/js/bootstrap.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.min.js"></script>
<script src="http://7webpages.com/static/js/retina.min.js"></script>
<script src="http://7webpages.com/static/js/company.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".dateinput").datepicker({});
})
</script>
</body>
</html>