Search
Write a publication
Pull to refresh
14
0
Виктор Котляник @navar

User

Send message

Nginx + uWSGI + virtualenv + Django на Debian Squeeze

Reading time4 min
Views33K
Некоторое время назад озадачился поиском способа развертывания проектов Django, к которому предъявлялись два требования:
  1. Удобное управление запуском/остановкой/перезапуском нескольких проектов на одном хосте
  2. Поддержка разных виртуальных сред для разных проектов

По второму пункту мой выбор склонился в пользу Nginx + uWSGI. По первому же, из рассмотренных мною вариантов больше всего понравились обвязки для uWSGI в Debian.
Читать дальше →

Гай Кавасаки: Чему я научился у Стива Джобса

Reading time5 min
Views3.9K
Существует множество публикаций, объясняющих чему можно научиться у Стива Джобса, но немногие из людей, писавших их, были «в той же лодке» и на личном опыте узнали, каково было работать с ним. Я хочу, чтобы ни один полученный мной урок не был потерян или забыт, поэтому вот 12 самых важных вещей, которым я научился у Стива Джобса.
Читать дальше →

Ещё 10 батареек для джанго

Reading time5 min
Views28K

Продолжаем делиться своим опытом использования полезных батареек для Django.
Первая часть
Ещё рекомендуем «Сумбурные заметки про python и django» и «Django проект PR Hero: что внутри и полученный опыт».

Для Django написано огромное количество пакетов. Из них мы выбрали 10, которые использовали сами в своих последних проектах и которыми остались довольны. Все они есть на PyPI. Они продокументированы и покрыты тестами, где-то больше, где-то меньше. Исключение составляет django-sphinx, о котором отдельно.

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

Бесплатный облачный PHP-MySQL хостинг для небольшого сайта на основе Amazon AWS

Reading time8 min
Views87K
Данная инструкция не претендует на абсолютную точность, какую-либо новизну и предназначена для делающих самые первые шаги. Поэтому не судите особо строго.

Боевая задача.


Предположим нам хочется захостить небольшой проектик где-нибудь в надежном и не особо тормозящем месте. А поскольку сайт небольшой, то не будем заморачиваться и захотим от хостинга что-нибудь самое простое. Для наших целей вполне хватит PHP, MySQL и доступа по FTP.
Для решения этой задачи идеально подходит Веб сервис от Амазона в котором удивительным образом сочетается способность выдерживать большие нагрузки с бесплатным пакетом ресурсов на первый год после регистрации. В бесплатный пакет входит много чего, но в данный момент нас будут интересовать:
  • Виртуальный сервер в формате micro на основе Linux с доступом по SSH.
  • 30Гб места в Elastic Block Storage плюс 1Гб под бэкапы.
  • 15 Гб трафика в месяц.
  • Выделенный внешний IP адрес.

Причем все это при желании можно зарегистрировать и подготовить к работе за полчаса, но понадобится кредитная карта, которую примет Amazon (и снимет 2 доллара) и сотовый телефон под рукой (домашний не подойдет).

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

По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?

Reading time10 min
Views175K


Добрый день, Хабр!

Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.

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

Удобное приложение для реализации субдоменов в Django — django-hosts

Reading time1 min
Views7.6K
django-hosts — полезное приложение от замечательного Jannis Leidel, который входит в состав Django core-developers и курирует большое количество Django-проектов.
Документацию можно найти на readthedocs.
Пример установки:
  • Устанавливаем: pip install django-hosts
  • Добавляем 'django_hosts' в INSTALLED_APPS
  • Добавляем 'django_hosts.middleware.HostsMiddleware' в MIDDLEWARE_CLASSES
  • В директории проекта создаем файлик назовем его например hosts.py
  • Примерное содержание hosts.py:
    from django_hosts import patterns, host
    host_patterns = patterns('path.to',
        host(r'api', 'api.urls', name='api'),
        host(r'news', 'news.urls', name='news'),
        host(r'forum', 'forum.urls', name='forum'),
    )

    В соотвтетствии с файлом hosts.py у нас появятся 3 хоста: api.site.com, news.site.com, forum.site.com.
  • В settings.py добавляем: ROOT_HOSTCONF = 'projectname.hosts'

Не забываем про настройку wildcard субдомена (Хотя не обязательно wildcard — достаточно прописать необходимые. Ну а как все это сделать думаю все знают).
Читать дальше →

Фоторама

Reading time4 min
Views55K


Около полугода назад я написал простой джейкверный плагин для галерей на сайтах. Назвал его Фоторамой и выложил в интернет. По клику кроссфейдом показывалась следующая фотография, клик с шифтом мотал назад — вот и всё.

За эти месяцы Фоторама повзрослела, обзавелась сайтом с логотипом и, думаю, теперь можно написать о ней на Хабре.
Читать дальше →

Полевые транзисторы. For dummies

Reading time8 min
Views616K

Введение


А теперь давайте поговорим о полевых транзисторах. Что можно предположить уже по одному их названию? Во-первых, поскольку они транзисторы, то с их помощью можно как-то управлять выходным током. Во-вторых, у них предполагается наличие трех контактов. И в-третьих, в основе их работы лежит p-n переход. Что нам на это скажут официальные источники?
Полевыми транзисторами называют активные полупроводниковые приборы, обычно с тремя выводами, в которых выходным током управляют с помощью электрического поля. (electrono.ru)

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

Еще один факт о полевых транзисторах можно узнать, обратив внимание на их другое название — униполярные. Это значит, что в процессе протекания тока у них участвует только один вид носителей заряда (или электроны, или дырки).

Три контакта полевых транзисторов называются исток (источник носителей тока), затвор (управляющий электрод) и сток (электрод, куда стекают носители). Структура кажется простой и очень похожей на устройство биполярного транзистора. Но реализовать ее можно как минимум двумя способами. Поэтому различают полевые транзисторы с управляющим p-n переходом и с изолированным затвором.

Вообще, идея последних появилась еще в 20-х годах XX века, задолго до изобретения биполярных транзисторов. Но уровень технологии позволили реализовать ее лишь в 1960 году. В 50-х же был сначала теоретически описан, а затем получил воплощение полевой транзистор с управляющим p-n переходом. И, как и их биполярные «собратья», полевые транзисторы до сих пор играют в электронике огромную роль.

Перед тем, как перейти к рассказу о физике работы униполярных транзисторов, хочу напомнить ссылки, по которым можно освежить свои знания о p-n переходе: раз и два.
Читать дальше →

JavaScript паттерны… для чайников

Reading time8 min
Views181K
Однажды вечером, сразу после того, как я закончил разбираться с наследованием в JS, мне пришла в голову идея, что пора бы заняться чем-нибудь посложнее — например паттернами. На столе внезапно оказалась книжка Gof, а на экране ноутбука появился труд с названием «JavaScript patterns».

В общем, спустя пару вечеров, у меня появились описания и реализации на JavaScriptе самых основных паттернов — Decorator, Observer, Factory, Mediator, Memoization (не совсем паттерн, а скорее техника, но мне кажется что она прекрасно в этот ряд вписывается) и Singleton.

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

Бэкапы своими руками для чайников

Reading time3 min
Views22K
Давно известно, что сисадмины делятся на две категории: те, кто еще не делает бэкапы и те кто уже делает. В то время, когда одни ДЦ горят, а вторые внезапно исчезают, лучше всего принадлежать ко второй категории.

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

Задача


Необходимо по расписанию создавать резервные копии файлов и базы данных. Эти два процесса должны быть независимы друг от друга, потому что бэкап БД делается чаще, чем бэкап файлов (или наоборот).
Дано

  • VPS на базе Centos 5 x86_64.
  • Панель управления ISP Manager. Стандартные средства ISP Manager не устраивают.
  • Свободного места на сервере очень мало.

Цель

Получить архивы файлов и БД на сервере в определенной папке. Архивы должны быть доступны по http-протоколу.
Читать дальше →

Пример Sphinx поиска на реальном проекте — магазин автозапчастей Tecdoc

Reading time9 min
Views98K
Вкратце: статья будет полезна тем программистам, кто уже заинтересовался релевантным поиском и прочитал статьи по стартовой установке сфинкс поиска, погонял на тестовых примерах и таких же синтетических задачах. Часто эти примеры не дают ответа на вопрос, а как же ощутить реальную пользу от поискового модуля Sphinx в сравнении с другими более простыми вариантами поиска. Примеры кода в статье — на php+smarty, Sphinx 2.0.1-beta, база данных — mysql, исходники и дамп структуры базы выложены отдельным архивом в подвале. В статье описан пример использования таких особенностей сфинкса, как:
  • Создание единого конфиг файла для windows development и linux production
  • SetMatchMode(SPH_MATCH_EXTENDED2) и почему SPH_MATCH_ANY и другие не подходят для реального поиска
  • SetSortMode(SPH_SORT_RELEVANCE), SetFieldWeights — сортировка по релевантности и установка весов для полей индекса
  • SetLimits(0,20) — ограничение вывода результатов
  • AddQuery, RunQueries — построение мультизапросов
  • SetFilter, ResetFilters — добавление фильтрации в мулльтизапросе для ограничения получаемых данных
  • Wordforms — использование синонимов и преодоление ограничений для нестандартных словоформ, как «C#»

Также хочется внести свой вклад в развитие проекта и откровенно недостаточной русской документации при том, что проект создан и поддерживается русскоязычным программистом. Поэтому решено: непрекращающийся поток блокер задач идет лесом, вместо него в качестве благодарности разработчикам сфинкса в общем и пользователю Андрей Аксёнов ака shodan я пишу эту статью.
Читать дальше →

Шаблон проекта на Джанго с инструментами сборки и утилитами

Reading time6 min
Views19K
Иногда приходится создавать с нуля сайт на Джанге. Это и тесты концепций, и простенькие странички (ведь если мы в проекте используем разные мощные инструменты, почему бы сайт-визитку не сделать тоже с их помощью, избавив себя от ручной работы?).

Итак, представляю публике проект под девизом «Поменьше писанины! Побыстрей, дебаг!» Набор для скоростной разработки на Джанго.

Это 2 шаблона:
  • шаблон конфига buildout, который подтягивает и собирает все необходимые проекту пакеты
  • шаблон проекта, а именно настройки, включающие все нужные инструменты, и набор статики (готовые файлы на Haml и Sass)


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

Эффективное использование Vim

Reading time11 min
Views74K

Введение


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

Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

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

Создание операционной системы на базе ядра linux. С нуля

Reading time7 min
Views214K
Рано или поздно каждый пользователь Линукса задумывается над созданием собственного дистрибутива. Некоторые аргументируют это тем, что можно «все настроить под себя». Другие сетуют на то, что среди уже представленных дистрибутивов в Ветке нет идеального. А у них, якобы, есть суперконцептуальные идеи для собственной системы. Зачем я всю эту психологию затеял? Для того, чтобы сразу перекрыть кислород играющимся с Линуксом новичкам, которым делать нечего. Если уж задумались над созданием ОС, думайте до конца. Итак,

Я хочу создать ОС на базе Linux.
Сразу предупреждаю: был бы XVIII век, всех тех, кто для основы своей будущей системы выбирает другой развитый дистрибутив (и, не дай Бог, популярный...) ждала бы виселица. Пост именно про создание системы с нуля, а значит, всякие Slax и Linux Mint мы трогать не будем.
Читать дальше →

Жизнь за рубежом

Reading time5 min
Views3.8K


Все началось с того, что я начал думать о том, куда бы мне переехать жить. Хотелось переехать куда-то недалеко, в тёплый климат, в одну из европейских стран, куда можно переехать не быв при этом миллионером. Начал изучать, читать… и тут понял, что мне не хватает сайта, на котором можно было бы найти информацию о любой стране, пообщаться с людьми, которые уже там живут и теми, кто планирует переезжать. Конечно же есть по каждой стране не один форум и блог — но такого сайта, который бы объединял всех русскоязычных
эмигрантов — такого я не нашел. А то, что находил — совершенно не удовлетворяло мои потребности.

Именно поэтому я и решил, что нужно сделать такой сайт. Об этом сайте и пойдет дальше речь.

Краткий план статьи. Вам стоит читать эту статью, если Вы хотите узнать:


1. О проекте
2. Пару слов о "дизайне" и немного о технической начинке.
3. О том где и как рекламирую и какие ресурсы оказались самыми эффективными.
4. Про монетизацию
5. Рассказ про то, куда переезжаю я и почему именно туда
6. Ищем модераторов.
Читать дальше →

Определение части речи слов в русском тексте (POS-tagging) на Python 3

Reading time9 min
Views96K
Пусть, дано предложение “Съешьте еще этих мягких французских булок, да выпейте чаю.”, в котором нам нужно определить часть речи для каждого слова:

[('съешьте', 'глаг.'), ('еще', 'нареч.'), ('этих', 'местоим. прил.'), ('мягких', 'прил.'), ('французских', 'прил.'), ('булок', 'сущ.'), ('да', 'союз'), ('выпейте', 'глаг.'), ('чаю', 'сущ.')]

Зачем это нужно? Например, для автоматического определения тегов для блог-поста (для отбора существительных). Морфологическая разметка является одним из первых этапов компьютерного анализа текста.
Узнать, как это реализовать на Python 3

Безопасное хранение паролей

Reading time2 min
Views44K
imageИнтернет прочно вошёл в нашу жизнь. Все мы, даже совсем неблизкие к IT люди, пользуемся большим количеством самых разнообразных сервисов, начиная от почты и заканчивая социальными сетями. Практически все сервисы требуют регистрации. Но для обеспечения безопасности использовать нужно разные пароли, состоящие из многих символов. Ну большинство людей, пользующихся интернетом, знают о требованиях к безопасным паролям. Но тут возникает одна небольшая проблема: как запомнить все эти множества паролей?
Читать дальше →

Новые возможности Firebug 1.8

Reading time3 min
Views2.8K
По случаю, пока все отдыхают, переведём-ка мы список новых возможностей Firebug 1.8, опубликованных 29 июля 2011 года. Сам релиз вышел тоже 29 июля и был опубликован на стандартном месте — в Расширениях Firefox — Firebug.

(Пользователи не 5-го браузера Firefox увидят ссылку на скачивание внизу страницы, потому что релиз совместим только с 5-й — 5.XX версией браузера. Для бета-версий 6-7-8 рекомендуется Firebug 1.9a0.)
Читать дальше →

Шаблоны проектов на основе PasteScript

Reading time3 min
Views1.6K
С увеличением количества проектов встала проблема автоматизации создания каркаса под новые приложения. До недавнего времени новые проекты мы создавали путем копирования заготовленного шаблонного проекта и изменения различных настроек в разных местах проекта. Само собой это убивало достаточно много времени.

Попытки решить эту проблему вывели меня на проект под названием Python Paste. В общих чертах — это набор утилит для создания веб-приложений, к примеру можно создать свой фреймворк (в Pylons используют именно его). Помимо утилит для веба Python Paste содержит модуль Paste Script, с помощью которого можно создавать шаблоны-заготовки и на основе них генерировать проекты.
Читать дальше →

Python-неизвестный

Reading time4 min
Views27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity