Search
Write a publication
Pull to refresh
39
0

User

Send message

Еще о кэшировании в Django

Reading time6 min
Views18K
Все знают, что такое кэширование и зачем оно нужно. Посещаемость растет, нагрузка на базу данных увеличивается, и мы решаем отдавать данные из кэша. В идеальном мире, наверное, для этого будет достаточно добавить строчку USE_CACHE = True в settings.py, но пока это время не пришло, понадобится немного больше телодвижений.

Когда мы собираемся использовать кэш в Django, нужно сделать выбор: взять готовое решение, которое сделает сделает все «за кулисами», либо реализовать свое. В отличие от многих других ситуаций, тут этот выбор не так очевиден, так как в существующих на сегодня готовых решениях довольно много ограничений и потенциальных неудобств.

Сначала мы быстро рассмотрим готовые решения, а потом разберемся, как же лучше реализовать кэширование самостоятельно.
Читать дальше →

Раскрутка iOS приложения на англоязычном пространстве

Reading time1 min
Views6.4K
Хочу поделиться с хабра-сообществом важной ссылкой. Давно для себя это искал, а сегодня, когда нашел — очень обрадовался.
Это список-рейтинг сайтов с обзорами приложений и игр для iOS, с ссылками сразу на страницу запроса обзора, или связи с администрацией сайта.
Надеюсь, инфа будет полезной для разработчиков.
Читать дальше →

Экономим память с помощью UKSM

Reading time2 min
Views18K
UKSM (Ultra Kernel Samepage Merging) — технология совмещения одинаковых страниц памяти в одну.

UKSM вдохновлен KSM(технология от RedHat), но практически полностью переписан.
У KSM есть несколько недостатков:
  • Непрозрачность для пользователя и разработчика. Программа должна сообщать ядру, какие страницы объединить, этим пользуются редко
  • Достаточно глупый алгоритм: сканирует память с постоянной скоростью. Зачем тратить CPU, если нет страниц, которые можно объединить?
  • Достаточно медленный: максимальная скорость сканирования, которой удалось добиться при тестах ­— 260 МБ/с.

Читать дальше →

Введение в CSS3 Multicolumn. Работаем с колонками

Reading time8 min
Views68K
apples

Как расположить текст на странице в несколько колонок? И можно ли это делать автоматически? Наверняка, многие из тех из вас, кто занимается или занимался раньше веб-разработкой, сталкивались с такой задачей — и часто упирались в сложные решения, требующие хитрых стилей, либо применения дополнительных библиотек на JavaScript (см. например Columnizer-плагин для jQuery).

Многоколоночная верстка контента (не путать с задачей общей многоколоночной верстки страницы, которая скорее ближе к проблеме расположения блоков по сетке) долго пробивала себе дорогу в мире веб-стандартов и, наконец-то, не просто достигла статуса Candidate Recommendation в виде соответствующего модуля CSS3 Multi-column Layout, но и получила достаточно широкую поддержку в браузерах: где-то с префиксами (-moz- или -webkit-) и где-то в актуальных (Opera 11.1+) и планируемых версиях (IE10+), причем сразу без префиксов.
Читать дальше →

Мониторинг за изменениями файловой системы

Reading time4 min
Views44K
В поисках готового велосипеда для решения задачи мониторинга за изменениями в ФС с поддержкой linux+freebsd наткнулся на приятную python либу watchdog (github, packages.python.org). Которая помимо интересных мне ОС поддерживает также MacOS (есть своя специфика) и Windows.
Тем, кому данный вопрос интересен и кого не отпугнет индийское происхождение автора, прошу
под кат

Django Gmap v3 Widget — геолокация с поиском, сохранение координат и адреса в JSONField

Reading time6 min
Views10K
Привет. Была поставлена задача реализовать геолокацию (google maps v3) для пользователей в одном из проектов на django, хочу поделиться своим решением.

Необходимый функционал:

  1. Вывод карты с маркером текущего положения, возможность перемещать маркер (dragged), ставить по click событию
  2. Поиск по адресу (autocomplete)
  3. Сохранение как координат, так и самого адреса (если он имеет место быть)

Читать дальше →

DeepClone на javascript, который можно твитнуть

Reading time3 min
Views7.4K
Добрый день!

Не знаю, будет ли кому интересно, но соорудил сегодня такое чудо: DeepClone, упихивающийся в 140 байт.
Если кто-то такое уже делал и постил, ткните, пожалуйста, носом. Я в формате твитов нашёл только неглубокие копирования. Ну и не исключаю, что какой-нибудь применённый хак находится в списке запрещённых препаратов приёмов, а за его использование полагаются страшные кары :)

Из недостатков — всё то же, что и у клонирования с помощью функции extend из jQuery: не ест стандартные объекты типов Boolean, String, Date, игнорирует prototype и constructor и зависает на кольцах.
Достоинство одно и, по-большей части, чисто эстетическое — размер.

Тестировал в Firefox, Chromium, Opera, IE8 и в умолчальном андроидном браузере.

Под катом — код и небольшой рассказ о том, как это работает.

Читать дальше →

oEmbed. Делаешь веб-сервис? — Делай и oEmbed

Reading time3 min
Views15K


Конечно вы видели этот эффект, когда вставляешь в фейсбуке или вконтакте ссылку, и в посте тут же начинает подгружаться какой-то контент с сайта, на который ведет ссылка. И я видел, но даже не представлял, насколько это легко можно сделать с oEmbed'ом.

oEmbed.com — впринципе, на этом можно было бы и закончить читать тем, кто хочет провести самостоятельное мини-исследование.
Но вот мой рассказ, как этим пользоваться и много ссылок

Интерактивная визуализация данных Envision.js

Reading time1 min
Views5.3K
Envision.js библиотека для создания быстрых динамических и интерактивных визуализаций данных на HTML5.


Возможности:

1) Визуализация в реальном времени.
2) Временная шкала
3) Визуализация валют ( как на яндексе прям )
4) Поддержка Ajax в интерактиве.
5) Можно побаловаться фракталами.

Читать дальше →

Создаем движущиеся картинки с помощью Processing

Reading time3 min
Views11K
image

На Хабре есть статья, как получить синемаграфы с помощью бесплатной программы от Microsoft. Меня заинтересовала эта тема и я решил написать короткий скетч для скриптового языка Processing. Что это за язык программирования можно почитать здесь. Подобные движущиеся картинки представляют собой набор нескольких десятков кадров, у которых большая часть пикселей прозрачна.
Читать дальше →

Модуль nginx для борьбы с DDoS

Reading time6 min
Views67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →

VIM, Django… Django, VIM

Reading time2 min
Views11K
Вот казалось бы сейчас, как никогда должна быть масса крутых IDE для разработки на Django. И они есть — взять хотя бы PyCharm или PyDev. Но мне они никогда не нравились. Я всю свою карьеру Python-разработчика пользовался SciTE + Scintilllua (вот мой конфиг, если кому нужен) и был вполне доволен. Но черт меня дернул попробовать VIM с Emacs и я уже не смог вернуться на SciTE. Нет, это отличный редактор, но большую часть работы я пишу код и уже не могу представить, как можно было работать в текстовом редакторе с мышкой или каждый раз тянуть руку к стрелкам, чтобы перейти на новую строку, а потом к End, чтобы перейти в конец строки. Оставалось мне только по-минимуму настроить свой VIM для удобной разработки на Django.
Читать дальше →

Kartograph — фреймворк для создания интерактивных карт

Reading time1 min
Views20K
Kartograph — это новый фреймворк для создания интерактивных картографических веб приложений без использования Google Maps/Bing Maps или любого другого сервиса. Он создавался с учетом потребностей дизайнеров и журналистов.

Можно поглядеть на демки, чтобы узнать на что способен Kartograph.
или узнать как это все работает.

Vim+Python. Для начинающих

Reading time1 min
Views13K
Небольшой видеоролик про редактирование кода в vim.
Краткое содержание.
1. Использование аббревиатур.
2. Плагин MRU
3- Плагин tagbar
Сделано с помощью свободного редактора OpenShot — для изготовления видеороликов в домашних условиях он оказался вполне пригоден.

http://youtu.be/eagC7PcGcCk



P.S. В комментариях советуют массу плагинов. Но их такое количество разных, что если у кого-то есть желание написать про них-я не против. Но моё время ограниченно и вынужден ограничиться самым, на мой взгляд, важным.

impress.js — презентации на CSS3, рвущие шаблон

Reading time4 min
Views19K
Даже хорошие презентации, не содержащие списков из двадцати пунктов восьмым кеглем и вызывающих рвотный рефлекс картинок из бесплатных сборников клипарта “встречи и партнёрство” или “офисная жизнь”, следуют давным-давно заданному стандарту, без изменений перенесённому в офисные пакеты из мира старинных диапроекторов. Презентация всегда представляет собой набор прямоугольных картинок одинакового формата и размера. Иногда между ними добавляют переходы и анимацию, раздражающую не меньше разноцветных надписей и бессмысленно улыбающихся абстрактных офисных работников. Стандартом де-факто для хорошей презентации давно стала последовательность статичных слайдов без всякого мельтешения, с очень коротким текстом крупным шрифтом и несколькими тщательно подобранными фотографиями или скриншотами.

Основанный на трансформациях и переходах CSS3, javascript-фреймворк для создания презентаций impress.js выходит за рамки понятия “слайд” и позволяет строить презентации в открытом, неограниченном трёхмерном пространстве. Источником вдохновения для него послужил сервис prezi.com. Репозиторий impress.js на Гитхабе появился меньше месяца назад, но уже стал одним из самых популярных. Нетерпеливые могут посмотреть небольшую демку здесь, а остальные — создать пример необычной презентации прямо сейчас.
Читать дальше →

Плавный перезапуск FastCGI-процессов — django_graceful

Reading time3 min
Views3.3K
Из всех способов деплоинга django-проектов мой любимый — FastCGI. Он поддерживается большинством веб-серверов, позволяет внятно разграничить права доступа и имеет массу других преимуществ.

Однако в django его реализация не лишена недостатков. Чтобы запустить FastCGI-сервер нужно выполнить «./manage.py runfcgi» с немаленьким количеством параметров, которые если и можно запомнить, то точно не захочется писать каждый раз руками. А если это происходит в контексте обновления кода проекта на боевом сервере, то команд становится ещё больше. Приходится писать различные wrapper-ы для запуска и перезапуска, которые засоряют проект.
Читать дальше →

Vzmem: визуальное непротиворечивое распределение памяти для OpenVZ

Reading time3 min
Views2.2K
В какой-то момент мне надоело высчитывать с калькулятором значения VMGUARPAGES и PRIVVMPAGES для OpenVZ и следить, чтобы они были согласованы для разных виртуальных машин (например, чтобы физическая память распределялась между машинами непротиворечивым образом, и одна машина не могла «отъесть» физическую память у другой и увести ее в своп, например). И я написал небольшую, но очень удобную «псевдографическую» утилитку, — vzmem, — которой сейчас и хочу поделиться. Надеюсь, она кому-нибудь пригодится.

Как использовать dklab_vzmem


Vzmem — это утилита командной строки, которая позволяет «визуально» распределять физическую память между несколькими виртуальными машинами OpenVZ так, чтобы одна машина «не залезала» на другую. Т.е. если нужно увеличить память для какой-то из машин, всегда видно, откуда эту память требуется «откусить»: от одной из существующих машин или от пула свободных блоков.
Читать дальше →

DataRetriever — cервис для сбора и анализа данных из интернет-сми и социальных сетей

Reading time2 min
Views3.2K
Представляем вашему вниманию наш продукт — DataRetriever — сервис, предназначенный для мониторинга открытых источников (Интернет-СМИ, социальных сетей, блогов, форумов, мультимедийных сервисов) и анализа полученных данных.



Что это все значит?

Все просто :) С помощью нашего сервиса можно находить упоминания в СМИ и социальных сетях — компаний, продуктов, людей и т.д., строить графики количества публикаций, проводить анализ источников, формировать отчеты, экспортировать данные в MS Office.
Читать дальше →

Руководство к дескрипторам

Reading time10 min
Views174K

Краткий обзор


В этой статье я расскажу о том, что такое дескрипторы, о протоколе дескрипторов, покажу как вызываются дескрипторы. Опишу создание собственных и исследую несколько встроенных дескрипторов, включая функции, свойства, статические методы и методы класса. С помощью простого приложения покажу, как работает каждый из них, приведу эквиваленты внутренней реализации работы дескрипторов кодом на чистом питоне.

Изучение того, как работают дескрипторы, откроет доступ к большему числу рабочих инструментов, поможет лучше понять как работает питон, и ощутить элегантность его дизайна.

Читать дальше →

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity