Обновить
21
0

DevOps Engineer

Отправить сообщение

django-inline

Время на прочтение1 мин
Количество просмотров1.2K
Навеяно советом Артёма Горбунова.

Что позволяет делать:
— простым движением добавлять на страницу in-place или in-line редактирование переменных

Вот, впринципе, и всё.

http://code.google.com/p/django-inline/
Читать дальше →

Частые ошибки программирования на Bash

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров99K
Качество скриптов, используемых для автоматизации и оптимизации работы системы, является залогом ее стабильности и долголетия, а также сохраняет время и нервы администратора этой системы. Несмотря на кажущуюся примитивность bash как языка программирования, он полон подводных камней и хитрых течений, способных значительно подпортить настроение как разработчику, так и администратору.

Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)

Данный текст является вольным переводом вики-страницы «Bash pitfalls» по состоянию на 13 декабря 2008 года. В силу викиобразности исходника, этот перевод может отличаться от оригинала. Поскольку объем текста слишком велик для публикации целиком, он будет публиковаться частями.

Поехали!

ejabberd с авторизацией через LDAP

Время на прочтение6 мин
Количество просмотров30K
Я достаточно давно и без сожалений расстался с ICQ. Воспользовавшись возможностью, поднял свой собственный Jabber-сервер, которым с успехом и пользуюсь по сей день. Однако не у всех моих сотрудников есть Jabber-аккаунт (не все даже знают, что это такое :-), что несколько затрудняет общение по работе. Для общения с остальными, для организации безопасной и независимой системы обмена сообщениями, я решил поднять корпоративный jabber-сервер. А так как у нас активно используется LDAP, то логичным показалось задействовать его для аутентификации пользователей и управления учётными записями.
Читать дальше →

ejabberd: внешние программы аутентификации

Время на прочтение2 мин
Количество просмотров5K
В заметке ejabberd с авторизацией через LDAP я описал основные моменты по настройке сервера ejabberd и подключения его к LDAP. К сожалению возможностей стандартного модуля LDAP-аутентификации нам не хватило. Однако ejabberd позволяет использовать внешние, в том числе собственные, программы для этой цели.
Читать дальше →

ejabberd: Поиск по визитным карточкам

Время на прочтение2 мин
Количество просмотров6.5K
В заметке ejabberd с авторизацией через LDAP я описал основные моменты по настройке сервера ejabberd. В заметке внешние программы аутентификации показал как можно использовать внешнюю программу, если не хватает функционала встроенных модулей. Теперь добавим поиск по визитным карточкам пользователей.
Читать дальше →

ejabberd: общие списки

Время на прочтение2 мин
Количество просмотров17K
image
Предыдущие заметки про настройку ejabberd 1, 2 и 3.

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

Интервально-ассоциативный массив

Время на прочтение2 мин
Количество просмотров4.8K
Замечательная вещь — ассоциативный массив. Самые разные задачи решаются с его помощью легко, приятно и быстро. А как быть когда значение должно принадлежать не одному ключу, а быть «размазанным» на некоторый интервал?
Представьте, что вам нужно сделать программу для составления расписания дежурства менеджеров интернет-магазина. Работа с ним должна была максимально простой, примерно так:
# легко назначить
>>> timetable['08:00' : '12:00'] = 'Иванов'
>>> timetable['12:00' : '16:00'] = 'Петров'

# как узнать кто дежурил в 13:51 ?
>>> print timetable['13:51']
Петров

# легко просмотреть поэлементо полный список
>>> for interval, person in timetable.items(): print interval, person
('08:00', '12:00') Иванов
('12:00', '16:00') Петров

# ...или одной строкой
>>> print timetable
{['08:00', '12:00'] => 'Иванов', ['12:00', '16:00'] => 'Петров'}


Дальше - больше!

© В. И. Пупкин, 2008

Время на прочтение4 мин
Количество просмотров87K
Ещё одна мелочь, на которую не вредно обращать внимание — оформление знака охраны авторского права (который часто неграмотно называют «копирайтом»). К сожалению, на сайтах этот элемент подвала страницы зачастую ставят «чтобы был», и оформляют кто во что горазд. Однако, на сей счёт есть не просто сложившиеся правила, а целый ГОСТ Р 7.0.1—2003 (PDF, 652 КБ).

Ничего сложного в оформлении знака охраны авторского права нет, нужно просто знать определённые правила.

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

Рулим трафиком в Linux. Часть третья.

Время на прочтение7 мин
Количество просмотров5K
Часть 1, Часть 2

Добавляем лимитирование трафика и ограничение пропускной способности канала.

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

Рулим трафиком в Linux. Часть вторая.

Время на прочтение6 мин
Количество просмотров7.9K
Первую часть читайте здесь.

В этой статье мы рассмотрим:
— Авторизацию пользователей из базы данных MySQL.
— Детализацию трафика по направлениям.

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

10 jQuery скриптов для улучшения интерфейса

Время на прочтение3 мин
Количество просмотров11K
С рассветом WEB 2.0 получили развитие и javascript фрэймворки, позволяющие вебмастеру делать динамические элементы сайта гораздо быстрее и проще. Одним из таких фреймворков является jQuery, получивший огромную популярность за свою простоту и невероятно малый вес. Итак, представляю вашему вниманию 10 наиболее полезных скриптов jQuery для улучшения интерфейса вашего сайта.
Читать дальше →

Организация постоянных редиректов с www.domain на domain и обратно.

Время на прочтение1 мин
Количество просмотров21K
Так исторически сложилось, что домены сайтов называют с префиксом www или без.

Есть несколько взглядов как истинно должен называться домен, прогрессивное человечество считает, что без www — nowww.ru, многие западные эксперты считают обратное.

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

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

Правила личной эффективности от ЭД

Время на прочтение21 мин
Количество просмотров66K
Заранее предупреждаю и извиняюсь, но оно того стоит: букаф многа.

Введение

В средней школе я был «круглым» двоечником, которого переводили в следующий класс только под значительным влиянием моего отца, в то время проректора ФПИ, довольно влиятельного (в личном общении) и властного человека.

В конце седьмого класса у меня встал выбор — идти в ПТУ или учиться дальше в школе. Все учителя, настаивали на том, что мне бесполезно учиться не то что в институте, но и в старших классах, в виду моей бездарности. Естественно, это мне не очень понравилось, и я решил стать лучшим в школе.

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

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

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

Подсчет количества найденных записей в PostgreSQL

Время на прочтение3 мин
Количество просмотров44K
На работе в новом проекте используется СУБД PostgreSQL. Так как до сих пор я работал с MySQL, сейчас приходится изучать и открывать для себя Постгри. Первая проблема, которая меня заинтересовала — замена мускулевского SQL_CALC_FOUND_ROWS. При использовании этой константы в MySQL можно получить количество всех найденных по запросу записей, даже если запрос с limit'ом — это незаменимо при постраничном выводе поисковых результатов, когда используются «тяжелые» запросы.
Сходу готового решения найти не удалось. На форумах просто констатировали, что SQL_CALC_FOUND_ROWS в Постгри нет. Некоторые писали, что надо юзать count(*). И больше никакой информации. Но еще из MySQL мне было известно, что поиск с count()-запросом работает почти в 2 раза медленнее, чем с SQL_CALC_FOUND_ROWS. Я консультировался у тех, кто пользуется PostgreSQL, день мучал google и в результате получил 4 варианта замены SQL_CALC_FOUND_ROWS в PostgreSQL, один из которых вполне приемлимый по скорости.
Читать дальше: какие запросы и какая разница в скорости

Супер-юзабильные формы

Время на прочтение2 мин
Количество просмотров54K
super_form

Как-то на хабре разгорелся спор, как заставить пользователя вводить дату в правильном формате, было множество интересных решений, но заставлять пользователя совершенно не надо — пусть за пользователя основную работу делают машины :-).

На помощь приходит замечательный скрипт «Masked Input Plugin», который позволяет назначить для каждой формы маску, по которой данные будут заполнятся.

Возможно Вы не совсем поняли, но лучше один раз увидеть, чем сто раз услышать.
Читать дальше

Персональный холивар

Время на прочтение2 мин
Количество просмотров7.2K
Здравствуйте уважаемые хабралюди, хабрасообщество и сочувствующие, на вас одна надежда.
Сей порыв связан с моим отчаяньем, ибо уже как 2 месяца выбираю CMS для студии. И о ужас! Ничего не могу найти достойного.
Суть следующая. Я среднестатистической руководитель проектов, среднестатистической российской региональной веб студии. До поры до времени сидели на своей CMS и худо бедно справлялись. А в один прекрасный день я понял, что она абсолютно не годится по ряду причин, не буду в них углубляться, но суть в том что система собрана на коленках и на что-то серьезное пускать ее – смерти подобно.
И тут настало время Ч. Время выбора достойной CMS, коммерческой или некоммерческой не важно.
Читать дальше →
12 ...
8

Информация

В рейтинге
Не участвует
Откуда
Севастополь, Республика Крым, Россия
Дата рождения
Зарегистрирован
Активность