Как стать автором
Обновить
0
0
Сергей @Tesla

Пользователь

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

jQuery плагин для добавления ссылок в буфер обмена

Время на прочтение3 мин
Количество просмотров19K
У многих из нас есть блоги, интернет-магазины, новостные сайты etc… Понятное дело стараемся опубликовывать оригинальный контент, но что же происходит после появления контента в интернетах, его конечно же просматривают и если он интересный, пользователи иногда обмениваются ссылкой на страничку с контентом. Новые переходы на нужную страницу и нам очень хорошо, а что если наш отличный текст просто взяли скопировали и скинули в аську\скайпик\почту — наш текст ушел, а перехода нету :(.

addtocopy plugin

Запретить копирование, это очень неправильно, весело и смешно ©, но мы ведь можем при копировании добавить в буфер обмена ссылку на наш сайтик. Рассмотрим как же нам это лучше сделать:

Читать дальше →
Всего голосов 101: ↑80 и ↓21+59
Комментарии49

Лучшие шрифты для программирования

Время на прочтение4 мин
Количество просмотров246K
Статья написана в 2009 году, и с тех пор многое изменилось, в том числе появились некоторые альтернативные шрифты для программирования, например, Anonymous Pro.

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

Я выкладываю список из десяти моноширинных шрифтов, готовых к использованию. Некоторые из них идут в комплекте с современными операционными системами, но большинство можно бесплатно скачать из интернета. Отдельные, в том числе Consolas, являются частью коммерческого ПО.
Читать дальше →
Всего голосов 178: ↑161 и ↓17+144
Комментарии193

Класс для перевода текста используя сервис Google Translate

Время на прочтение1 мин
Количество просмотров10K
Недавно втсала задача программно переводить текст на лету. Времени на поиск готового решения не было. Затем наповал сразила новость о том, что Google Translate API скоро прекратит свою работу (пруфлинк).
В итоге пришлось по быстрому написать класс который использует непосредственно то, куда ходит за переводом сам http://translate.google.com.
Получилось довольно универсально и расширяемо. Проект можно скачать с GitHub.
Всего голосов 22: ↑14 и ↓8+6
Комментарии20

Первичный кэш в Kohana 3 с использованием тегов

Время на прочтение5 мин
Количество просмотров3.3K
Приведенный пример является результатом решения одной задачи, которая возникла при разработке системы управления сайтом на фреймворке Kohana 3.1, в которой предполагается одна учетная запись администратора и множество незарегистрированных читателей.

Требовалось надолго кэшировать результаты работы методов моделей, которые обращаются к базе данных. Фактически, требовалось создавать копии наборов данных из базы, чтобы снизить нагрузку на СУБД. Для немедленного обновления кэша при добавлении новых данных или обновления старых требовалась очистка кэша по тегам.

Учитывая все это, и в связи с ограничениями используемых хостингов требования были следующие:
  • Кэш должен храниться в файлах.
  • Кэш должен храниться долго, для увеличения скорости извлечения данных и снижения нагрузки на СУБД.
  • При обновлении данных администратором сайта, кэш, содержащий устаревшие данные должен очищаться, причем, очищаться должен не только кэш результатов функций, напрямую извлекающих эти данные из базы, но и тех, результаты которых связаны с этими данными (например, при удалении рубрики каталога должен очищаться кэш списков позиций рубрик). Для достижения этой цели должны поддерживаться теги.
  • Ради достижения цели можно в определенных рамках пожертвовать временем, уходящим на добавление новых материалов, и которое будет затрачено в том числе на очистку кэша, так они добавляются «своим человеком», а не сторонними пользователями.

Стандартный класс Cache_File не поддерживает теги, по этой причине потребовалось писать свой класс, ему было дано имя JetCache.

Класс спроектирован по шаблону «одиночка». Рассмотрим пример работы класса в модели для банка файлов. При инициализации модели создается экземпляр:

$this->cache = JetCache::instance();


Создание кэша данных рассмотрим на примере функции для извлечения списка файлов определенной рубрики (здесь из нее удалены некоторые аргументы и некоторый код для упрощения чтения):
Подробности далее
Всего голосов 18: ↑15 и ↓3+12
Комментарии31

Kohana 3.0 — упрощаем себе жизнь

Время на прочтение8 мин
Количество просмотров10K
Фреймворк — это хорошо, это здорово, это возможность сэкономить кучу времени на раздумьях над архитектурой будущего приложения, но… Фреймворк как таковой — это каркас. И, на примере Kohana 3.0, о которой в данной статье пойдет речь, каркас этот надо, в той или иной степени, допиливать.
Теперь давайте по-порядку, чем мы сейчас займемся:
  • -Расширим базовый контроллер, добавив в него жизненно необходимые методы и работу с юзерами (которая присутствует в 99% проектов, хотя бы на уровне административного логина)
  • -Создадим свой фронт-контроллер для более удобной и красивой работы с вью-файлами
  • -Реализуем вывод ошибок валидации через фронт-контроллер
  • -Улучшим базовый класс View
  • -Ну и еще кое-какие полезные мелочи

Итак, начнем…
Читать дальше →
Всего голосов 50: ↑39 и ↓11+28
Комментарии25

Видеокурс по Kohana 3.1

Время на прочтение2 мин
Количество просмотров18K
Приветствую вас, уважаемые хабралюди!

Хочу предложить вашему вниманию видеокурс моего производства по фреймворку Kohana 3.1.

Что за видеокурс такой и кому он нужен: видеокурс бесплатный, доступен без предварительной регистрации — я не последователь Азамата Ушанова (да-да, такие еще остались, но нас очень мало).

Основная цель видеокурса: рассказать понятным языком (доступным даже начинающему) о преимуществах ООП и MVC-подхода, о возможностях фреймворка Kohana в плане упрощения труда программиста в реализации часто используемых модулей.

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

На кого рассчитан видеокурс: начинающие веб-мастера, желающие перейти от программирования на чистом PHP к MVC-фреймворку.
Читать дальше →
Всего голосов 69: ↑59 и ↓10+49
Комментарии34

Мини-фреймворк своими руками

Время на прочтение11 мин
Количество просмотров13K
Недавно, прочитав про мини-фреймворк Silex, я подумал: а что в нем сложного? Попробовал написать нечто подобное и получилось довольно легко.
How-to по написанию своего мини-фреймворка - под катом.
Всего голосов 114: ↑80 и ↓34+46
Комментарии67

Ajax загрузка данных из контейнера

Время на прочтение1 мин
Количество просмотров20K
Знаете ли вы, что с помощью jQuery можно загружать не только контент страницы, но и выбранного контейнера на ней? Оказывается можно и делается это следующим образом:
$("#area").load("something.html #content");

Данный код найдет на странице something.html контейнер с id content, возьмет его содержимое и загрузит в контейнер с id area. Но есть одно но…
Читать дальше →
Всего голосов 119: ↑80 и ↓39+41
Комментарии49

Глава 3. Оживляем страницу с jQuery

Время на прочтение8 мин
Количество просмотров15K
Очередная глава из книги «jQuery in Action» (авторы Bear Bibeault и Yehuda Katz). Прежде всего извиняюсь перед читателями за столь большой промежуток между публикациями глав. Но все-таки я это сделал, чему, конечно же, рад. Надеюсь, что и вы тоже не останетесь равнодушными. Итак, продалжаем.

Читать дальше →
Всего голосов 93: ↑82 и ↓11+71
Комментарии24

Siege — утилита для нагрузочного тестирования веб-серверов

Время на прочтение7 мин
Количество просмотров81K
Надеюсь, что данный материал будет кому-нибудь полезен.

Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии67

Игры с XPath

Время на прочтение4 мин
Количество просмотров29K


XML

XML — текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.

XML это удобная штука хранить файлы в читаемом виде.

Например простой XML файл может быть таким
Читать дальше →
Всего голосов 40: ↑22 и ↓18+4
Комментарии23

12 навыков создания защищенных веб-приложений

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

Большинство примеров кода не привязаны к какому-либо конкретному языку программирования, но для наглядности я буду использовать PHP.

Итак, поехали.

Читать дальше →
Всего голосов 246: ↑203 и ↓43+160
Комментарии194

Грабли при верстке HTML писем

Время на прочтение3 мин
Количество просмотров104K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →
Всего голосов 282: ↑273 и ↓9+264
Комментарии77

Пишем первый аддон для XenForo. MVC, шаблоны, стили, настройки, навигация — используем все

Время на прочтение10 мин
Количество просмотров10K
Кир разместил на форуме учебный аддон, на котором можно продемострировать, как нужно писать аддоны для XenForo. Этим мы сейчас и займемся. Этот учебный аддон содержит парочку ошибок, возможно, для того, чтобы мы себя проявили, обнаружив и исправих их. Мы создадим такой же аддон с самого начала и позволим себе немного улучшить / исправить то, что получилось у Кира.

Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии1

Руководство по Ubuntu 10.04 «Lucid Lynx»

Время на прочтение2 мин
Количество просмотров5.4K
Как уже не раз вспоминали за последнее время, лето — это отличный повод изучить что-то новое и расширить свой кругозор. Конечно же это касается и сферы компьютерных технологий.

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

Однако простых и понятных учебников по Linux не так и много, в основном приходится собирать информацию по частям на бескрайних просторах Сети. Что, увы, иногда отбивает охоту от активных действий. Мне захотелось это исправить и помочь пользователям легко и безболезненно перейти на использование Linux, поэтому я написал руководство по Ubuntu Linux с прицелом на новичков.
Немного подробностей
Всего голосов 160: ↑131 и ↓29+102
Комментарии267

Начинаем работать с Drupal: полное практическое руководство (часть 1)

Время на прочтение17 мин
Количество просмотров202K
Здравствуйте!

Выношу на суд хабраобщества перевод замечательной статьи Getting Started with Drupal: A Comprehensive Hands-On Guide. Данный материал является незаменимым руководством для начинающих друпальщиков, поскольку в нем рассматриваются не только установка и базовые принципы, но и два из «трех китов» Друпал-сайтостроения — Views и CCK. Самое приятное, что вся статья посвящена практическому созданию полезного сайта (доски объявлений). Право, во времена Друпала 4.7, когда я только начинал с ним знакомиться, о таких подробных и внятных руководствах можно было только мечтать.
Читать дальше →
Всего голосов 102: ↑92 и ↓10+82
Комментарии26

Начинаем работать с Drupal: полное практическое руководство (часть 2)

Время на прочтение6 мин
Количество просмотров33K
Продолжение первой части.

Создадим страницу вакансий с помощью модуля Views

Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала.
Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода.
Попросту говоря, Views — это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.
Читать дальше →
Всего голосов 89: ↑79 и ↓10+69
Комментарии24

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность