гедит (гном) или кейт (кде) + муравей.
Люди, которые предлагают emacs, забывают, что, хотя это отличная ОС, ей действительно нужен приличный текстовый редактор. Изучение vi, хотя и полезно, если вам действительно нужно использовать редактор cli, - это такая же боль в заднице, как и изучение IDE. Как kate, так и gedit примерно так же трудно изучить, как notepad.exe, за исключением того, что они поддерживают подсветку синтаксиса.
Ant легче изучать, чем создавать IMO (возможно, из-за того, как работает компиляция c / c ++), но на его написание требуется больше времени (это xml). Я думаю, вы могли бы использовать make для компиляции Java. Мне сказали, что maven2 заменяет муравья, но никогда не использовал его. Если это так, вы можете использовать его вместо муравья.
Что касается слияния svn, существует множество инструментов, начиная от diff
(cli, создает файлы различий) до meld
Python GUI, который предоставляет вам параллельный diff. На окнах tortoisesvn поставляется с tortoisemerge, который выполняет 2-х и 3-х стороннее графическое отображение.
Правильно, изменение заголовков - неправильное решение, оно используется, когда вы хотите кэшировать на основе заголовков клиентских запросов, таких как пользовательский агент и т. Д.
Вам нужно будет использовать низкоуровневый API или кэширование фрагментов шаблона . На самом деле это зависит от ваших представлений.
С низкоуровневым API это выглядит примерно так:
from django.core.cache import cache
def get_user(request):
user_id = request.GET.get("user_id")
user = cache.get("user_id_%s"%user_id)
if user is None:
user = User.objects.get(pk=user_id)
cache.set("user_id_%s"%user_id, user, 10*60) # 10 minutes
...
..
.
немного поздно, но для этого вы можете использовать django-view-cache-utils .
Да, вы можете использовать django-view-cache-utils, вот код для вашего случая:
from view_cache_utils import cache_page_with_prefix
from django.utils.hashcompat import md5_constructor
...
@cache_page_with_prefix(60*15, lambda request: md5_constructor(request.get_full_path()).hexdigest())
def my_view(request):
...