Pull to refresh
25
0
Send message

Пользуетесь PHP на 64-х битной платформе? Значит потеряли в производительности!

Reading time4 min
Views1.7K


По идее, эта статья должна была выйти в блоге «Linux для всех». Однако, данная проблема не проявила себя в аналогичных тестах на python и perl, а следовательно специфично-зависимая от PHP и разрядности платформы. А так PHP у нас прежде всего связан с сайтами, то и блог соответствующий — хостинг.

Внимание! Следующий текст содержит сцены насилия фрагменты исходного кода и может нанести неисправимый урон вашему мозгу и разрушить веру в человечество linux php.
Читайте продолжение только на свой страх и риск.
Total votes 94: ↑50 and ↓44+6
Comments33

Memcached и PHP ликбез

Reading time6 min
Views224K
В интернете достаточно много информации на данную тему, но, несмотря на это, многие обходят её стороной. Цель данного поста, разъяснить на пальцах основы взаимодействия с Memcached.
Читать дальше
Total votes 103: ↑78 and ↓25+53
Comments87

Придумываем сложные и легко запоминаемые пароли

Reading time2 min
Views4.3K
Относительно часто на хабре попадаются статьи так или иначе касающиеся паролей. Например, эта, или эта или эта. Тема интересная, и я решил внести свою лепту.

Создание легко запоминающихся длинных паролей
Total votes 32: ↑19 and ↓13+6
Comments35

Мессенджер, встраиваемый в ваш сайт

Reading time1 min
Views1.8K
В этом посте я хочу рассказать о новом продукте, которым я воспользовался, но не являюсь его создателем. В один прекрасный момент у меня появилась необходимость разработать мессенджер, подобрый месседжеру Facebook, для одного из моих сайтов. Задача была совсем не тривиальная. Я не стал изобретать «велосипед» (болезнь многих менеджеров проектов и разработчиков) и нашел готовое решение Imsgr.ru, с помощью которого можно установить мессенджер на любой сайт.


Читать дальше →
Total votes 49: ↑31 and ↓18+13
Comments61

Яндекс поиск на вашем сайте.

Reading time2 min
Views7.5K
Приведу пример класса, который можно использовать в качестве поисковика на вашем сайте.
Для работы класс использует сервис Яндекс.XML. В свободном режиме они разрешают использовать до 1000 запросов в день. Условия использования сервиса на xml.yandex.ru

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

С помощью Яндекс.XML вы можете предлагать своим пользователям:
  • поиск по вашему сайту (в той мере, в какой этот сайт проиндексирован Яндексом);
  • поиск по сети или ее части (регион, отрасль), результаты которого могут показываться на вашем сайте и в вашем дизайне, и сервисы на его основе — Яндекс.XML открывает большие возможности для исследователей поисковых систем и преподавателей;
  • поиск изображений, опубликованных в сети.

Читать дальше →
Total votes 60: ↑49 and ↓11+38
Comments26

Создание ознакомительного поискового движка на Sphinx + php

Reading time5 min
Views104K

Предыстория


Раньше для поиска по сайту мы использовали обычный fulltext поиск. Но в определенный момент он перестал нас устраивать и мы решили опробовать альтернативную технологию поиска: Sphinx. К сожалению, у сфинкса совсем нет русской документации, поэтому эта статья — аналог статьи Build a custom search engine with PHP, только на русском языке и для моего локального окружения (windows 7, mysql/php)
Статья состоит из 4 частей:
  1. Краткий рассказ про подготовку базы для поиска.
  2. Рассказ про первоначальную установку и настройку сфинкса
  3. Индексирование базы и тестовый поиск из командной строки
  4. Тестовый поиск из php

Читать дальше →
Total votes 82: ↑73 and ↓9+64
Comments59

Веб-шрифты на распутье

Reading time11 min
Views31K
Перевод не претендует на 100%-ную точность, но я постарался максимально точно передать мысли и слог автора. Комментарии приветствуются.

Начиная с Интернет Эксплорера 4 в 1998-ом, а затем с марта 2008-ого и до марта 2010-ого, один за другим, вся «большая пятерка» десктопных браузеров — Сафари, Файрфокс, Опера и Хром — выкатили сравнительно похожие реализации правила @font-face для привязки шрифтов. Вместе с тем, неотъемлимая часть веб-издательского паззла, часть, которой не хватает с начала Веба, встала на место и теперь настоящая, веб-ориентированая типографика начинает принимать форму.

Для начала, обзор последних событий:
  1. 18-ого марта 2010 года была учреждена группа Web Fonts Working Group в W3C. Её первая задача была утвердить спецификацию WOFF как стандарт доставки sfnt (OTF и TTF) шрифтов в веб в «сжатом» виде.
  2. Была представлена отрисовка шрифтов в IE9 с помощью Windows’s DirectWrite в IE9 Platform Preview.
  3. Появились первые инструменты для подготовки веб шрифтов, такие как Font Squirrel’s @Font-Face Generator и EOTFAST.
  4. Пошла новая волна «шрифтохранилищ» в виде Typekit, Typotheque и бесплатного, опенсорсного Kernest.
  5. Появились первые “трастовые/кредитные” лицензии на веб-шрифты от дизайнеров коммерческих шрифтов.
  6. CSS3 Fonts Module включил в себя некоторые продвинутые свойства OpenType.
  7. Adobe Flash, когда-то надежная, кросс-платформенная среда замены текста (sIFR), сейчас выглядит абсолютно убогой.
  8. Google запустил бесплатный сервис шрифтов с растущей библиотекой. Все шрифты в библиотеке доступны и для частного хранения/использования.

Теперь пройдемся по пунктам…
Читать дальше →
Total votes 66: ↑63 and ↓3+60
Comments43

Впечатляющие анимационные эффекты

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →
Total votes 262: ↑246 and ↓16+230
Comments78

Высокодоступное отказоустойчивое web-приложение на Apache2 и MySQL

Reading time7 min
Views17K

HA-Apache2 Web-Site and HA-MySQL


Цель: обеспечить высокую доступность web-приложения и минимальное время простоя при отказе одного как web-сервера, так и сервера баз данных.
Замечание! Схема предполагает, что web-приложение и база данных находится на разных серверах.
Для примера будем устанавливать wordpress.

Вариант решения:
Поскольку web-приложение должно быть постоянно доступно, то необходимо минимум два сервера с установленным приложением. Серверы будут отслеживать состояние друг друга, при этом в каждый момент времени ведущим будет только один из них. В случае отказа ведущего сервера его роль принимает второй. Когда первый сервер будет вновь доступен, к нему опять вернется роль ведущего.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments34

MySQL в tmpfs

Reading time5 min
Views14K
Хотелось бы поделиться опытом по использованию MySQL с хранением данных в памяти, а не на диске. Это позволило нам сократить load average сервера, который из-за операций с диском стал сильно расти.



Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments80

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

Reading time17 min
Views202K
Здравствуйте!

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

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

Reading time6 min
Views33K
Продолжение первой части.

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

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

Дрессируем box-shadow

Reading time6 min
Views97K
Простой пример box-shadow Разработчики W3C сделали box-shadow очень гибким свойством. Благодаря этому можно получать весьма интересные результаты, если использовать это свойство нетривиальным образом. В этой статье я напишу о некоторых эффектах, которые мне удалось получить при помощи «теневых технологий».

Пока я составлял примеры, я неожиданно обнаружил, что браузеры отображают их совсем неодинаково. В итоге, помимо простой демонстрации возможностей box-shadow, получился еще и маленький браузерный тест на поддержку CSS 3. Все примеры снабжены CSS-кодом и картинкой (общий объем всех PNG: 161 КБ). В статье я не стал прописывать свойства с вендорными префиксами -moz- и -webkit-, чтобы не ухудшать читабельность. В суммарной странице со всеми примерами эти префиксы есть (предупреждаю, что у Оперы есть баг с прорисовкой внешних box-shadow при прокрутке).
Читать дальше →
Total votes 132: ↑128 and ↓4+124
Comments56

Декодирование JPEG для чайников

Reading time9 min
Views273K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.


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


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

Читать дальше →
Total votes 413: ↑408 and ↓5+403
Comments140

F3: маленький PHP-фреймворк с огромными возможностями

Reading time7 min
Views26K


Хочу представить вашему вниманию легковесный PHP-фреймворк, на который я недавно наткнулся и который сразу же полюбил.

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →
Total votes 172: ↑152 and ↓20+132
Comments102

Несколько других советов для PHP-разработчиков

Reading time3 min
Views9.8K
Навеяно вот этим.

Я решил вспомнить некоторые особенности PHP, связанные с производительностью.

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

Результаты и выводы, сделаны на основании нескольких версий PHP, который крутятся на знакомых мне серверах, а именно 5.2.6 из Debian Lenny, 5.3.2 из Ubuntu, и 5.2.14 из dotdeb. Возможно, на других платформах, есть отличия.
Читать дальше →
Total votes 173: ↑149 and ↓24+125
Comments301

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Reading time2 min
Views17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →
Total votes 157: ↑146 and ↓11+135
Comments48

Используем Unmanaged С++ код в .NET программах

Reading time7 min
Views7K
image

Сегодня я (как, наверное, и многие другие программисты), все больше использую в своих разработках платформу .NET и язык C#, но все еще остаются уголки где оправдано применение C++. Это создает необходимость их интеграции.

Зачем?

  • В C++ код целесообразно выносить алгоритмы, критичные к производительности
  • В C++ код целесообразно выносить части, связанные с защитой приложения
  • Много старого кода написано на C++, и переписывать его весь — не лучшее решение
Это лишь основные причины, список далеко не полон. Но раз есть необходимость, значит есть решения.

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

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments7

CouchDB сегодня

Reading time8 min
Views26K


Что такое CouchDB для вас? Вероятно любой, кто хоть немного интересуется популярной нынче темой NoSQL, прекрасно знает общие детали: это такая симпатичная игрушка с map/reduce-запросами, которые пишутся на JavaScript, с которой можно работать, гоняя JSON по HTTP-протоколу, а также не исключено, что слышали, что она fault-tolerant, тобишь не ломается вообще. Дальше этого обычно дело не идёт, в результате CouchDB отправляется в delicious в общую кучу со всякими MongoDB, Cassandra, Hadoop и т.п.

Примерно такого мнения придерживался и я вплоть до недавнего времени, пока не возникла острая необходимость переосмыслить архитектуру текущего проекта (упёршегося лбом в свою реляционную БД) и пересесть на документную базу данных, которая бы умела map/reduce. После того, как более пристально взгялнул на CouchDB, я понял, что он уникален в своём классе, его не следует ставить в один ряд с упомянутыми продуктами. Идеи, которые заложены в CouchDB настолько концептуальны, что способны в корне перевернуть представление о разработке веб-приложений.

О том, что же меня так впечатлило, постараюсь рассказать под катом.
Читать дальше →
Total votes 147: ↑142 and ↓5+137
Comments110

Information

Rating
Does not participate
Location
Россия
Registered
Activity