Pull to refresh
0
0
SlashDev @SlashDev

User

Send message

В корзине нет товаров? Положим туда изюминку!

Reading time2 min
Views4.5K
Сейчас я на простом примере продемонстрирую одну их наших «микроинтерфейсных» находок.

Если товар добавлен в корзину, то вопрос с содержимым блока снимается. Пишем, сколько там товаров, на какую сумму, даем ссылку на оформление заказа.
Читать дальше →

Ускоряем выборку произвольных записей MySQL

Reading time3 min
Views33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

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

Простое сравнение изображений с помощью php

Reading time3 min
Views27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →

Разбор опций командной строки в UNIX-подобных системах

Reading time7 min
Views44K

Введение


Одной из важных задач любой программы, будь она консольной или графической является интерпретация аргументов командной строки. Формально аргументами называются все слова в командной строке(в том числе и имя самой команды) разбитые разделителем (как правило, это пробел и табуляция), кавычки же позволяют включать разделители в аргументы.
Аргументы можно подразделить на опции и операнды. Опции изменяют поведение программы или предоставляют ей дополнительную информацию. У опции могут быть свои аргументы, которые являются информацией необходимой только для этой опции.
Продолжим здесь

Система управления задачами opentodo

Reading time1 min
Views6.3K
Приветствую!

Решил поделиться с сообществом своим проектом.
opentodo — система управления задачами, написанная на языке Python (Django Framework).

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

Особенности

  • Простой, удобный интерфейс в стиле Gmail
  • Добавление задач, назначение ответственных и сроков выполнения
  • Возможность прикреплять файлы к задачам и проектам — скриншоты, документацию и т.п.
  • Жизненный цикл задач: Новая, Принята, Завершена, Одобрена
  • Цветовое кодирование задач в зависимости от статуса
  • Комментарии к задачам
  • E-mail уведомления
  • Управление пользователями с помощью стандартной панели администрирования Django
  • Разграничение доступа пользователей к проектам

Онлайн демо


Посмотреть в работе можно здесь: demo.opentodo.ru

Где скачать и как установить


Архив для загрузки и инструкция по установке доступны на странице проекта на Google Code:
code.google.com/p/opentodo

Исходный код под управлением системы контроля версий на сайте GitHub:
github.com/mgrigoriev/opentodo

Условия распространения: GNU General Public License v3.

Надеюсь, мой скромный проект для кого-то окажется полезным и поможет в организации работы :)

P.S. Спасибо участникам дискуссионной гугл-группы django russian, а также всем, кто прокомментировал пост на design.leprosorium.ru, за отзывы и ценные советы по улучшению opentodo.

UPD: убедительная просьба — полегче в демо! Анонимность не оправдывает вандализм :)

SoapClient: параллельные асинхронные запросы, реконнект, обработка тайм-аутов

Reading time3 min
Views8.2K
Dklab_SoapClient — это расширенная версия стандартного PHP-класса SoapClient, предназначенная для параллельного (асинхронного) удаленного вызова процедур в высоконагруженных проектах.

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

По сравнению со встроенным в PHP SoapClient, поддерживаются дополнительные возможности:
  • Одновременное, параллельное выполнение запросов к нескольким удаленным процедурам — ключевая особенность библиотеки. Если страница на вашем сайте собирается из 5 удаленных блоков, каждый из которых генерируется по 100ms, их можно запустить параллельно и получить всю страницу целиком не за 500ms, а за те же самые 100ms.
  • Реконнект при невозможности установления связи. К сожалению, мир несовершенен, и из-за случайной потери пакетов первая попытка соединения с SOAP-сервером может закончиться тайм-аутом. Это особенно часто происходит, когда проект располагается в нескольких датацентрах. Dklab_SoapClient позволяет задать тайм-аут на время открытия соединения (например, 1 секунду) и, в случае неудачи, повторить попытку указанное число раз. На практике это снижает вероятность итогового сбоя в тысячи раз, т.к. реконнект почти всегда помогает при утере пакета.
  • Поддержка тайм-аута на получение данных. Если страница собирается из удаленных блоков, то в случае «подвисания» одного из них «зависает» и вся страница. В то же время, отсутствие одного из блоков при наличии остальных — не такая большая беда. Вы можете указать, сколько времени Dklab_SoapClient должен ждать ответа от удаленной процедуры; если время превышено, возникает исключение PHP, которое вы можете обработать по своему усмотрению, не прерывая загрузку остальных блоков.
Читать дальше →

Жизнь во фрилансе глазами программиста

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

Вход


Вначале нужно как можно большими способами давать знать о том, что вы ищете заказы: говорить знакомым, родственникам, бывшим коллегам, заказчикам бывших коллег, публиковать в социальных сетях, специализированных веб-сайтах. Я подал более двадцати заявок на таких сайтах, прежде чем сработала хотя бы одна. Пару недель это у вас займёт.

Трудности


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

Named Capturing Group и Backreferences

Reading time3 min
Views6.5K
Данная заметка не предназначена для начинающих изучать регулярные выражения, для начинающих я бы посоветовал книгу Ben Forta "Teach Yourself Regular Expressions in 10 Minutes" (ISBN: 0-672-32566-7).

Для тестирования и отладки регулярных выражений идеально подходит программа RegexBuddy (http://www.regexbuddy.com). Чтобы отлаживать следующие примеры нужно во вкладку Test скопировать HTML какой-либо страницы или вбить несколько тегов самим.

Задача — найти в HTML все теги IMG и вытащить из тегов значения атрибутов SRC и ALT.

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

8 отличных хитростей jQuery

Reading time4 min
Views28K
imageКому не нравится jQuery? Это быстрая и простая javascript-библиотека стала очень популярной в 2008 году. В этой статье я собрал список восьми очень полезных jQuery-техник, советов и хитростей.
Читать дальше →

Панель наблюдения за сайтами ТОПнем

Reading time2 min
Views898
Панель ТОПнем — это возможность мониторинга за внешними показателями вашего сайта и отслеживания их изменений

ТОПнем

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

Переход на Open Source небольшой конторы. Опыт, размышления

Reading time3 min
Views3.8K
Как обещал в одном из комментов — публикую свой опыт перехода на линуксы. Рассказ будет несколько сумбурным. Потому что я не писатель и, собственно, таким и был переход.
Все началось с планирования бюджета на 2009-й год. Составив бюджет я понес его начальству. Увидев сумму в 400 т.р. статьи «Расходы на ПО» начальство задумалось.
— С линуксами знаком?
— Ну дома стоит…
— Контору на них перевести сможешь?
— Терминал-сервер оставить надо на винде (1с и еще ряд задач), а вот остальные машины, в принципе, реально.
Так и начался переход. Дистрибутив выбрали убунту. Во-первых, потому что дружелюбный, а во-вторых, потому что с остальными дистрами я толком не общался.
Читать дальше →

Используем любой шрифт с Javascript.

Reading time3 min
Views25K
Все мы знаем прекрасные библиотеки sIFR3 и FLIR, которые на лету помогают использовать любой шрифт на веб-страницах.
Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом.

Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом JavaScript.

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

Архитектура CMS. Модель данных. Часть 1

Reading time8 min
Views6.5K
Система управления содержимым (CMS) обязана предоставить гибкие всеохватывающие функциональные возможности для управления содержимым сайта, облегчить работу администратора-конфигуратора и способствовать созданию удобного в использовании сайта. Содержимым сайта можно назвать новости, размещенные на нём, а также статьи, комментарии, фотографии. Содержимым также являются целые структуры информации: новостные ленты, каталоги, форумы, блоги. Обобщенно: содержимое – это данные, размещенные на сайте.

CMS может просто передавать данные по запросу клиентскому приложению, например сетевой программе, flash-клипу или AJAX-приложению. Но чаще всего, CMS предоставляет клиенту уже подготовленные для отображения данные в HTML формате. В этом случаи, для обеспечения доступности, легкости восприятия и удобства пользования содержимым, выполняется стилизация и объединение его с элементами оформления (темы, шаблоны), навигации (меню, ссылки) и управления (формы и ссылки тоже), и всем этим тоже нужно управлять.

Идея


Окружающий мир воспринимается нами объектным, мы мыслим «объектами», в наших умах выстраивается объектная модель мира. Поэтому нам не составит труда создать объектную модель содержимого сайта и управлять ею. Новости, товар в каталоге, сообщения на форуме и сами форумы, и все другое можно представить в виде объектов. Устанавливая связи между объектами, можно создавать структуры данных любой сложности, от добавления комментариев к статьям до создания социальных сетей и более.

Объекты, классы и связи данных – это информация, которую нужно уметь создавать, хранить, использовать, изменять и удалять. В нашем распоряжении реляционная база данных для хранения информации. Действия же совершаемые с информацией – часть логики функционирования CMS, которая в большей части будет реализована модулем данных Data.
Читать дальше →

Архитектура CMS

Reading time8 min
Views18K
Имея более чем достаточно времени, увлекся я размышлениями о создании гибкой, многофункциональной, но относительно простой CMS для программистов и её конфигураторов-пользователей. Некоторые идеи были навеяны потенциальными возможностями CMS Drupal. И вот теперь, увлеченный уже реализацией идей и имея успешные промежуточные результаты, я решил рассказать об архитектуре создаваемой CMS. По ходу прочтения общая картина возможностей CMS должна прорисовываться сама, во всяком случае, для программистов:)

Архитектура CMS


Архитектура создаваемой системы основана на модульном принципе. CMS полностью строится из модулей, как детский домик из кубиков. С целью достижения гибкости и простоты взаимодействия модулей, необходимо было достичь минимальных действий для использования модулей любым компонентом системы без необходимости создания жестких связей, а также сделать возможность легкого расширения действий модулей с помощью других модулей.
CMS — совокупность модулей
Читать дальше →

Полный AJAX. Теория и Примеры. Фишки и Фичи

Reading time8 min
Views34K
По многочисленным просьбам начинающих (и не только) AJAX разработчиков, решил выделить часть своего времени для описания некоторых хитростей и приемов, которыми пользуюсь при построении сложных, динамических веб-приложений. Статья представляет из себя смесь теоретических выкладок и практических примеров.

Наибольшие трудности при построении сайтов c применением AJAX возникают при реализации механизма AHAH (Asynchronous HTML and HTTP). Особенно выполнение на лету подгружаемых Javascript-ов. Также есть куча дополнительного «гемороя» при разработке AJAX сайтов и веб-приложений. Вы можете ознакомится с детальным описанием некоторых существующих проблем. Из-за указанных сложностей, многие разработчики отказываются от более насыщенного внедрения AJAX.

Однако, мало кто знает, что перечисленные проблемы можно решить.
Читать дальше →

Использование Exception (обновлённая версия).

Reading time4 min
Views9.4K

throw new Exception or not throw new Exception, вот в чём вопрос!



Доброе время суток!

Когда же использовать технологию исключений? Когда лучше воздержаться и стоит ли воздерживаться?
Поищем истину вместе

VPN, полное покрытие

Reading time5 min
Views31K
Представьте, ваша компания набирает обороты, растут продажи, происходит открытие множества филиалов, и эти филиалы активно работают друг с другом. А это значит что вам нужно все их друг с другом связать! В качестве оборудования у нас маршрутизаторы Cisco, что впрочем отменяет только конечные примеры настроек, если у вас Cisco нет, я находил в сети проект OpenNHRP.

Итак, начнем. Для начала свяжем центр с первым филиалом с использованием IPSEC.

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

Оптимизации системы разделения прав доступа в веб-приложении

Reading time19 min
Views7.6K
После написания прошлой статьи про реализацию системы разделения прав доступа в веб-приложении, появилось множество интересных комментариев. В них в основном велись споры о том, что можно сделать её ещё лучше.

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

В этой статье я рассмотрю:
  1. Битовые поля, оптимизация
  2. Serialize с денормализацией таблиц БД
  3. Вы узнаете, как работает система, подобная Zend ACL

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

Создаем свой SVN сервер: 3$ и 30 минут

Reading time4 min
Views14K
Многих хабрачитателей иногда волнует вопрос хостинга SVN. В интернете полно вариантов захостить SVN репозиторий, с ценой порядка 10-15уе в месяц, но смущает одно: хостинг репозитория — намного более ответственное дело, нежели хостинг сайта. В коде — ваши «сверхценные идеи», от аптайма сервера и надежности бэкапов напрямую зависит работа вашего бизнеса. Некоторые выбирают все же хостить SVN в серьёзных компаниях. Хорошее сравнение по параметрам тут: http://www.svnhostingcomparison.com/, open-source кстати можно захостить в неплохом месте на букву G ;-).

Другие же, как и я, решают хостить SVN на своём VDS / Dedicated сервере. На этом вопросе я и остановлюсь, рассказав заодно немного о вариантах запуска/настройки svn сервера (в том числе относительно новых — шифрование/аутентификация SASL и хранение в FS). Выльеться все это вам в 3-4$/месяц, в полный контроль за бэкапами и доступом к серверу. Пожертвовать придется 30 минут драгоценного времени на настройку.

Целевая аудитория: начальный — средний уровень опыта работы с Linux.
PS. Я в курсе что FreeBSD is not Linux ;-)
Читать дальше →

Первый проект на symfony, часть 1

Reading time11 min
Views28K
Ну что, начнем? Давайте напишем какой-нибудь небольшой, но законченный проект. Выделим на это ровно 1 час. Предлагайте название. Книжный магазин? Если других идей нет, то будем писать блог :)
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity