Обновить
0
0
Maximark@Maximark

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

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

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

Время на прочтение7 мин
Охват и читатели9.1K
Шило в известном месте всё никак не даёт мне покоя.
И решил я поэкспериментировать с установкой сервера дома.

Итак, дано:

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

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

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

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

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


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

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

Время на прочтение1 мин
Охват и читатели2.8K
Многие предприниматели подмечают нынче высокие рыночные цены на зарплаты программистов. Что же делать, если нет таких денег? Я решил проанализировать индийский рынок труда по направлению «PHP-программист» и сравнить его с российскими ценами.
Читать дальше →

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

Время на прочтение1 мин
Охват и читатели13K
Мой опыт рекламы в Adwords. Будет полезен скорее новичкам, но, возможно, и опытные рекламодатели найдут что-то новое.

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

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

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

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

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

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

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

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

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

Время на прочтение3 мин
Охват и читатели4.7K


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

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

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

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

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

Время на прочтение1 мин
Охват и читатели1.4K

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


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

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

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

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

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

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

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


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

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

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

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

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

PHP, PREG и UTF-8

Время на прочтение6 мин
Охват и читатели16K
В этом посте речь пойдет о работе РНР5 с multibyte строками посредством preg_*() функций.

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

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

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

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

Время на прочтение1 мин
Охват и читатели5.9K
Не так давно став «администратором» usb-шного gps-приемника и Asus eeePC 901, я задался вопросом поиска подходящего софта для организации GPS-навигатора на базе eeePC.

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение7 мин
Охват и читатели28K
Это вторая часть перевода. Начинать прочтение лучше с первой.

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

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

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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели21K
Эта статья покажет, как в современных браузерах можно сделать подсветку текста в поле редактирования (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: небольшое, но мощное

Время на прочтение5 мин
Охват и читатели14K
Вы наверняка не раз видели 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 полноценным!

Время на прочтение1 мин
Охват и читатели847
morecss-logo.png

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

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

Время на прочтение3 мин
Охват и читатели32K
Эта небольшая статья поможет новичкам (и не только) оценить удобство собственного сайта и укажет основные недочёты, присущие многим сайтам. Ваши пользователи скажут вам спасибо =)

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

Информация

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