Pull to refresh
0
0
Maximark @Maximark

User

Send message

Сервер дома — AMD, Debian x64, Bind9, Apache 2, PHP5, MySQL5, Trac, Subversion и море удовольствия

Reading time7 min
Views8.9K
Шило в известном месте всё никак не даёт мне покоя.
И решил я поэкспериментировать с установкой сервера дома.

Итак, дано:

1. Домашний интернет с внешним ip на роутере, канал туда/обратно — 8 мбит, провайдер — QWERTY *
2. Бюджет не больше 10 тысяч рублей — чем меньше, тем лучше. **
3. Жгучее желание экспериментов и чего-нибудь эдакого ***

* К сожалению, мой дом не подключает Корбина, у которой более широкие каналы. Приходится довольствоваться тем, что есть
** Получилось путём более-менее реального подсчёта стоимости комплектующих на среднестатический компьютер
*** Для тех, кто хмыкнет и скажет — «эка невидаль, я такое регулярно делаю» — я не так часто что-то настраиваю, больше пишу под уже настроенное, и для меня это чистой воды развлечение — что-то сделать своими руками=)

Ну, все процедуры тут, под катом.

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

Вероятно, что-то можно настроить более гибко или качественно, и я крайне буду рад советам или решениям=)


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

Есть ли смысл нанимать php-программистов-индусов?

Reading time1 min
Views2.6K
Многие предприниматели подмечают нынче высокие рыночные цены на зарплаты программистов. Что же делать, если нет таких денег? Я решил проанализировать индийский рынок труда по направлению «PHP-программист» и сравнить его с российскими ценами.
Читать дальше →

Как рекламироваться в Google Adwords

Reading time1 min
Views13K
Мой опыт рекламы в Adwords. Будет полезен скорее новичкам, но, возможно, и опытные рекламодатели найдут что-то новое.

Что надо сделать до начала работы с Адвордс?
  • Завести карточку для оплаты в Интернет и узнать в банке ее CVV-код. Положить на нее некоторую сумму, например, $50.
  • Очень полезно почитать справку по Adwords.

Регистрация в Адвордс и настройка платежной информации

Зайдите на http://adwords.google.com и зарегистрируйтесь.

Если у Вас уже есть почтовый ящик на Gmail, то лучше указать его в качестве логина. Если нет — укажите любой другой действующий email.

Настройте платежную информацию. Зайдите на вкладку Оплата — Настройки платежных данных. Выберите основной способ оплаты (для Украины я выбираю постоплату по кредитной карте и пишу транслитом имя, фамилию, адрес в том виде, как они заполнены в банке при получении кредитки, дату окончания срока карты и ее CVV-код).

Подбор ключевых слов

Допустим, Вы занимаетесь страхованием автомобилей.

Продолжение статьи здесь

4GB оперативной памяти

Reading time3 min
Views4.4K


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

Проблема проста: вы поставили в компьютер 4 гигабайта оперативки, но операционка не оценила вашей щедрости.
Читать дальше →

Эволоция логотипов

Reading time1 min
Views3.4K
В продвижении продуктов или целых брендов не последнюю роли играет логотип компании. Все об этом знают: От качества, смысла и оформления логотипа может зависеть будущее компании.
Давайте проследим эволюционную цепь логотипов у ведущих ныне торговых марок.
Читать дальше →

Какая JavaScript-библиотека лучшая?

Reading time1 min
Views1.3K

Предлагаю обсудить JavaScript-библиотеки по следующим параметрам:


  • Технические и качественные характеристики: функционал, поддержка AJAX и т.д.
    Сфера применения: просты сайты, блоги, веб-магазины и т.д.
    Примеры сайтов с описанием
    Поддержка в фреймворках и CMS: Rails, CakePHP, Drupal, Joomla и т.д.
    Производительность: скорость работы, размер кода
    Наличие дополнительных модулей, плагинов, библиотек, снипеттов и т.д.
    Кроссбраузерность и кроссплатформенность
    Прочие параметры, которые будет интересно обсудить

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

Регулярные выражения для валидации распространенных видов данных

Reading time2 min
Views497K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →

8 полезных регэкспов с наглядным разбором

Reading time2 min
Views274K
О мощи и гибкости регулярных выражений написано много, и их использование давно уже является стандартом для различного рода операций над текстом. Пожалуй, чаще всего регэкспы работают при валидации вводимых данных — здесь им практически нет альтернативы, если не считать громоздкий циклический разбор с кучей неочевидных проверок. Начнём с самого простого:

1. Часть ЧПУ (человекопонятный URL)


По сути, слово с дефисами.

Паттерн: /^[a-z0-9-]+$/
short_url

Примеры посерьёзнее

Атака на WPA: подробности

Reading time10 min
Views39K
По мотивам топика о взломанном WPA.
Попытаемся все же разобраться, что случилось и чем это может нам грозить. Поскольку криптографические атаки — вещь, требующая для понимания весьма много специфических знаний, статью можно считать в некотором роде ознакомительной с безопасностью в Wi-Fi сетях.
Читать дальше →

PHP, PREG и UTF-8

Reading time6 min
Views16K
В этом посте речь пойдет о работе РНР5 с multibyte строками посредством preg_*() функций.

Заметил интересное положение дел, вобщем-то давным давно описанное в интернете, но актуальное и по сей день (вопрос всплыл всвязи с недавним постом про trim()).
Читать дальше →

Нормализация Unicode

Reading time2 min
Views22K
Однажды мне пришлось наблюдать, как спамеры очень интересным образом обходят спам-фильтр. Вместо традиционного URL типа «example.com», ссылка выглядела так:
http://example.com
Ссылка с подобной изощрённой точкой работает в IE7, FF3, Opera 9.5, Safari 3, Google Chrome и не работает в IE6.
Читать дальше →

Свободные векторные карты для GPS

Reading time1 min
Views5.8K
Не так давно став «администратором» usb-шного gps-приемника и Asus eeePC 901, я задался вопросом поиска подходящего софта для организации GPS-навигатора на базе eeePC.

На данный момент мною было найдено две программы, более-менее обладающих нужным функционалом: gpsdrive и navit. Первая мне как-то не очень понравилась и ковыряния с нею были отложены на потом, а вот со второй софтинкой я поковырялся более основательно.

Благодаря наботу скриптов, navit поддерживает множество различных форматов векторных карт (в том числе карты от garmin). Но меня больше интересовали открытые и свободные источники.
Читать дальше →

Постраничная навигация с MySQL при большом количестве записей

Reading time7 min
Views41K
Рано или поздно многие крупные проекты сталкиваются с проблемами производительности при постраничной навигации по записям. Некоторые из них решают эту проблему ограничением количества доступных для просмотра записей (скажем, не больше 1000). Вполне приемлемое решение. Но в этом случаем могут возникнуть проблемы с индексированием сайта сторонними поисковиками, которые и представляют наибольшую угрозу. В этой статье я хотел бы отказаться от привычной для всех панели навигации вида «1..2..3..4..» в пользу простой «вперед… назад» (будет проще объяснить), но это не проблема реализовать подобное и с первым вариантом.
Более точно определить тему, назвав, какое количество записей считать достаточно большим для появления тормозов, не получится, так как эта цифра для всех разная и сильно зависит от того, насколько быстрые у Вас жесткие диски, сколько памяти, и какая часть Ваших данных уже закеширована в ней и тд. Но если Вы и Ваши сервера ощущают, что n-ная страница при выводе даётся тяжелее первой, и при этом не знаете, что с этим делать – статья для Вас. Но для начала, я хотел бы на пальцах объяснить, почему ОНО работает медленно.

Кстати, тест происходит на виртуальной машинке, работаю я с СУБД под рутом, версия MySQL – 5.0.32.
Читать дальше →

Безопасная загрузка изображений на сервер. Часть первая

Reading time10 min
Views138K
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.

Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.

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

Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
Читать дальше →

Безопасная загрузка изображений на сервер. Часть вторая

Reading time7 min
Views28K
Это вторая часть перевода. Начинать прочтение лучше с первой.

Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).

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

Счетчик времени загрузки

Reading time3 min
Views2.2K
Коллеги, други и просто хабралюди. С неделю назад на Web Optimizator был выложен код для счетчика загрузки (немного более подробно об измерении времени загрузки страницы можно прочитать в статьях про анализ скорости загрузки и разгон интернет-магазина).

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

Время загрузки Web Optimizator
График распределения пользователей webo.in по времени загрузки у них этого сайта

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

Подсветка текста в «TextArea»

Reading time4 min
Views20K
Эта статья покажет, как в современных браузерах можно сделать подсветку текста в поле редактирования (WYSIWYG).
Пример можно посмотреть, в google.docs или на некоторых продвинутых форумах.

Уверен, многим это будет интересно.

Атрибут contentEditable и параметр designMode


Именно contentEditable или designMode и делает для нас всю основную «грязную» работу.

Если этот атрибут поставить в тег, то всё, что внутри тега, становится автоматически редактируемым.

<html><head></head><body>
  <div contentEditable="true"><b>C</b>ontent<u>!!!</u></div>
</body></html>
работающий пример

Этот атрибут не поддерживается сейчас некоторыми старыми браузерами (например, FireFox 2.0). Но есть более «глобальный» параметр страницы, который сейчас поддерживают все браузеры, который нам может помочь —
designMode

Контекстное меню на javascript: небольшое, но мощное

Reading time5 min
Views14K
Вы наверняка не раз видели javascript-реализации контекстных меню на базе популярных библиотек, таких как jQuery и prototype. А значит обязательно сталкивались с основными их недостатками: неудобностью API, большим количеством кода, требовательностью к ресурсам, любовью к генерации огромного количества html кода. В один прекрасный момент эти проблемы пересилили мою лень и я решил бороться с ними, поставив следующие задачи:
  • Минимум html кода, генерируемого для меню (зачем нам засорять ДОМ)
  • Лаконичность js кода для создания меню (API вызова без копипасты)
  • Оптимум гибкости при работе (многоуровневые, динамически модифицируемые меню)
  • Как можно меньше кода в реализации библиотеки (6302 байта в несжатом виде)
  • Минимальное количество jQuery-вызовов (чтобы можно было легко от них отказаться тем, кто jQuery не использует)
  • Inline-события где это возможно вместо биндов (меньше ресурсов сожрет)

Контекстное меню

UPD: разместил проект в google code, пользуйтесь, развивайте:
svn checkout js-cmenu.googlecode.com/svn/trunk js-cmenu-read-only

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

MoreCSS — Сделаем css полноценным!

Reading time1 min
Views818
morecss-logo.png

MoreCSS — небольшая библиотека JavaScript, весом всего 14кб, для решения повседневных задач, таких как создать всплывающие окна, сделать вкладки меню, таблицы и списки с оформлением «зебра»-стиль… и т.д. С помощью этой библиотеки Вы сможете это делать средствами обычного css.
Читать дальше

25 способов улучшить свой сайт

Reading time3 min
Views31K
Эта небольшая статья поможет новичкам (и не только) оценить удобство собственного сайта и укажет основные недочёты, присущие многим сайтам. Ваши пользователи скажут вам спасибо =)

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

Information

Rating
Does not participate
Date of birth
Registered
Activity