Lincoln Loop Blog

lincolnloop.com · Company blog · on HN since 2009

Blog of Lincoln Loop, a remote Python and Django consultancy, with posts on Django practices, testing, Nginx, and company culture.

What HN saysCommenters recommend its Django best practices guide for deployment and project structure, and cite the company as a successful fully virtual shop.
44HN people shared it
14linked it in comments
53stories submitted
656story points
2 years agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Django Best Practices — Updated for 1.4
    6 people · 180 points · first shared 2009 · 19 comments on HN
  2. 2
    At Lincoln Loop, Everyone Sets Their Own Salary
    3 people · 33 points · first shared 2012 · 7 comments on HN
  3. 3
    Botbot.me IRC logger is shutting down because of GDPR
    3 people · 4 points · first shared 2018 · discussion on HN
  4. 4
    Why Regular Demos are Part of Our Development Process
    2 people · 6 points · first shared 2012 · discussion on HN
  5. 5
    Introduction to Django Selenium Testing
    2 people · 5 points · first shared 2012 · discussion on HN
  6. 6
    Lessons Learned Architecting Realtime Applications
    2 people · 3 points · first shared 2014 · discussion on HN
  7. 7
    Speed Comparison: Putting Pyston and PyPy to the Test
    2 people · 2 points · first shared 2017 · discussion on HN
  8. 8
    Django Settings Parity
    2 people · 2 points · first shared 2013 · discussion on HN
  9. 9
    Rate Limiting with Nginx
    2 people · 2 points · first shared 2014 · discussion on HN
  10. 10
    Fast Immutable Python Deployments
    2 people · 2 points · first shared 2015 · discussion on HN
  11. 11
    Homepage
    2 people · first shared 2012
  12. 12
    Django Best Practices
    1 people · 147 points · first shared 2013 · 44 comments on HN
  13. 13
    Ginger Tech Stack (Realtime + Django)
    1 people · 93 points · first shared 2012 · 22 comments on HN
  14. 14
    What is SPDY?
    1 people · 62 points · first shared 2012 · 3 comments on HN
  15. 15
    Open Book Finances
    1 people · 29 points · first shared 2012 · 9 comments on HN

What HN people wrote when they linked it

vikp · 2013-11-02
I think it really centers around ease of use, amount of libraries, and community support. Django is widely adopted, has a long history of use, and is relatively easy to get started with. Performance is obviously important, but there are plenty of major websites using Django, so it can scale. This is a decent thread on that: http://www.quora.com/Django-web-framework/What-is-the-highest-traffic-… . Here is a great comparison of Go and Django: http://lincolnloop.com/blog/djangonaut-building-webapp-go-gorilla/ . I personally have used Django for quite a few projects, and haven't had any "I wish I used a different framework/language" moments.
ipmb · 2012-12-27
Not as well-known as some of the other examples, but our company, Lincoln Loop (http://lincolnloop.com), is successful and fully virtual.
tevers · 2012-07-21
Thanks for the feedback. Lincoln Loop http://lincolnloop.com/ is the leading Python/Django dev shop I've found so far. Please refer any others that you may know of. Thanks again
andrew_k · 2011-11-05
Assuming that this project on GitHub is yours https://github.com/cirsteve/courseslate and you show it to potential employers, I would recommend you to learn pip/virtualenv, read about django best practices, (http://lincolnloop.com/django-best-practices/) Also I would recommend to cleanup your repository from files that are not completely necessary (varios .tar.gz files, .ssh folder, .bash_history, etc.) Those things give you away as a beginner.
endtime · 2010-12-16
Not sure if I'd really buy a book on this - Lincoln Loop's wiki section gets you most of the way there: http://lincolnloop.com/django-best-practices/deployment/index.html
flavio81 · 2017-06-02
Well, in total honesty, the very fact of using PyPy is already a performance optimization over the regular CPython interpreter. (Although, this comparison is very interesting, it shows that not always PyPy will overperform regular CPython; it depends on what you are trying to do and if the system has just bootstrapped (after all, PyPy is a JIT compiler)): https://lincolnloop.com/blog/speed-comparison-cpython-pypy-pyston/ All in all, i'm happy that there are alternatives to speed Python up, but i'm kind of a bit worried that the bottleneck on performance might be the Global Interpreter Lock (GIL), the big white-elephant-in-the-room that is never talked about often enough when discussing Python. Mind you, Python is one of my favorite languages and i've used it a lot, so no hate here. There are projects for overcoming the GIL, for example PyPy with Software Transactional Memory, but they're still work in progress: http://doc.pypy.org/en/latest/stm.html
rtuck · 2010-10-14
I've tried out a few different tools now; the only two I've had any real success with were Capistrano and Fabric. Capistrano works well, great git integration, but it does have some rails-isms you need to override to make it work sanely. The capistrano-php extension can help with that: http://github.com/namics/capistrano-php but you'll need to use gem to manage it. You'll also definitely want the multistage plugin which doesn't come standard. There were some bugs present in the CVS integration which may be a problem depending on your source control system. I've also tried Fabric: http://docs.fabfile.org/0.9.2/ I liked the tool. I found it a bit more low level then Capistrano but also a little simpler to work with. It comes prepackaged (albeit an older version) in Ubuntu without any dependencies other than stock python which our sysadmin preferred to using Ruby gems. I do recommend the new version found in pip though. The two main problems with Fabric are its lack of any integration plugins and the Paramiko SSH library it uses has no support for SSH key forwarding (there is a workaround: http://lincolnloop.com/blog/2009/sep/22/easy-fabric-deployment-part-1-… but it has its own set of problems). In the end, neither worked out for me. Capistrano had to much of a learning curve for my co-workers and Fabric wouldn't work with our SSH setup. For now, I'm using a script in our working directory that I SSH to, run, and it updates the code in place. Crude, but…
paravz · 2023-01-09
Exactly what I'm looking for recently.. I dismissed ZFS (not mature on Linux) and btrfs (seems to be too complex and buggy as seen in a few horror stories) So far I started using --link-dest for rsync, as explained in https://lincolnloop.com/insights/detecting-file-moves-renames-rsync/ and used in https://github.com/dparoli/hrsync/blob/master/hrsync#L52
b-ryan · 2017-03-30
I have been working on this recently, using nginx as the reverse proxy. Nginx makes it pretty trivial to limit requests based on various factors, like request rate, number of connections, etc. A post like https://lincolnloop.com/blog/rate-limiting-nginx/ has snippets that show how it works. But the simplification is that you do not need to write any application code. I can very easily have certain routes or domains limited differently by updating the nginx config. Especially in a microservices world I am trying to avoid having to update N services to get all of them to be rate limited.
ilogik · 2015-05-27
I think you can with the latest version of Pip (7) https://lincolnloop.com/blog/fast-immutable-python-deployments/
michaelmior · 2014-02-11
Pickle doesn't really use eval, but there is still the potential for users to execute arbitrary code[1]. JSON, YAML, MessagePack, etc are safe in this respect (assuming a well-implemented parsing library) because all the parser does is convert the data into simple data structures. [1] http://lincolnloop.com/blog/playing-pickle-security/
reinhardt · 2012-11-10
> I could see someone like the 37Signals folks or some startup doing it from the start. http://lincolnloop.com/blog/2012/may/31/lincoln-loop-everyone-sets-the…
gregsadetsky · 2011-10-26
There's "Django Best Practices", which was discussed two months ago (although it doesn't seem like it grew a lot since): http://lincolnloop.com/django-best-practices/ HN discussion: http://news.ycombinator.com/item?id=2936364 Any effort to assemble "field" knowledge around Django would be great. For instance, I was looking for best practices for splitting settings.py (separating dev, test and prod-specific configs). If anybody's interested, I went through: http://stackoverflow.com/questions/88259/how-do-you-configure-django-f… , http://www.djangobook.com/en/2.0/chapter12/ (under "Using Different Settings for Production") and https://code.djangoproject.com/wiki/SplitSettings ...
windle · 2010-11-05
I'm sorry you feel that way, as the developer of Pylons, I really don't look at this as killing Pylons anymore than the lack of any new functionality has killed Pylons 1.0 in the past 6 months. Pylons 1.0 has been in maintenance mode already (effectively), 1.0 was in fact nothing more than a few tweaks on 0.9.7, ie. maintenance release with a 1.0 version number and finally killing a few deprecated things. The FAQ explains why when attempting to extend Pylons for new functionality, I hit a dead-end: http://docs.pylonshq.com/faq/pylonsproject.html#why-not-just-continue-… Finding a path forward for extensibility that didn't hit this forking problem: http://lincolnloop.com/blog/2008/apr/4/reusable-django-apps-and-forkin… was a very major concern of mine. I think this will address that, and when Django makes the changes necessary to remove the forking problem I won't be at all surprised if it requires porting your apps...

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close