Шпаргалка по FreeBSD

  1. Изменение прав доступа файла_или_папки
    % chmod -R 755 имя_файла_или_папки
    ( 7 - хозяин, 5 - группа, 5 - другие)
    0 Всё запрещено.
    1 –x Запрещено читать. Запрещено писать. Разрешено исполнять.
    2 -w- Запрещено читать. Разрешено писать. Запрещено исполнять.
    3 -wx Запрещено читать. Разрешено писать. Разрешено исполнять.
    4 r– Разрешено читать. Запрещено писать. Запрещено исполнять.
    5 r-x Разрешено читать. Запрещено писать. Разрешено исполнять.
    6 rw- Разрешено читать. Разрешено писать. Запрещено исполнять.
    7 rwx Всё разрешено
  2. Изменение владельца и группы файла_или_папки
    % chown -R user:group имя_файла_или_папки
  3. Создаем группу пользователей mailusers
    % pw groupadd mailusers
  4. Добавить в систему пользователя, например user
    % pw useradd user -c “Name_user” -L russian -g mailusers -d /nonexistent -s /sbin/nologin
  5. Read the rest of this entry »

О вечном: деревья… (db_tree)

Ссылки:

http://forum.dklab.ru/sql/php/IerarhicheskieStrukturiVBd.html
http://www.livejournal.com/users/demiurg/53125.html
http://e-taller.net/dev/dbtree/
http://sdm.viptop.ru/articles/sqltrees.html
http://www.webscript.ru/stories/04/09/01/8197045
http://www.webscript.ru/stories/05/01/24/6319028
http://phpclub.ru/talk/showthread.php?threadid=70821
http://phpclub.ru/faq/wakka.php?wakka=chpu&v=gls
http://phpclub.ru/faq/wakka.php?wakka=Tree&v=uof
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

Случайная сортировка

Mysql позволяет сортировать случайным образом

SELECT * FROM my_table ORDER BY RAND()

Проблема в том, что такая сортировка зачастую вовсе не нужна для всей выборки - хочется просто достать случайный элемент из определённого множества, к тому же ORDER BY RAND() достаточно медленный выход из ситуации. Можно попробовать делать выборку основываясь на числе элементов в целом и функции RAND():

SELECT name FROM my_table JOIN (
SELECT CEIL(RAND() * (
SELECT MAX(id) FROM my_table
)) AS randomID
) AS random_table ON random_table.randomID=my_table.ID

На 50000 рядов такой запрос занимает 0.00086 сек.. Сравните с 1.56356 сек обычного варианта ORDER BY RAND().

Proxy для MySQL (и не только)

  1. SQL Relay. SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux.
  2. MySQL Proxy.  The MySQL Proxy is an application that communicates over the network using the MySQL Network Protocol and provides communication between one or more MySQL servers and one or more MySQL clients. In the most basic configuration, MySQL Proxy simply passes on queries from the client to the MySQL Server and returns the responses from the MySQL Server to the client.
  3. PL/Proxy. PL/Proxy is database partitioning system implemented as PL language.
  4. SQLB : SQL Load Balancer. The SQLB project is used to improve SQL requests to a database. It supports MySQL, PostgreSQL and Oracle(tm). It is a set of deamon programs that make multiple permanent connection to one or more database when they start. Then an external program, previously linked with the sqlb client library, can send SQL requests to these deamons and get the result without any need to make a connection/disconnection. The SQLB PHP and Perl modules provided here with SQLB are some examples of such programs.

Scalability and Scalable Architecture Video Lectures

Отсюда http://freescienceonline.blogspot.com/2007/08/scalability-and-scalable-architecture.html

This month I present to you the amazingly good videos on scalability and scalable architectures.

They cover real life scalability issues and solutions at YouTube, Twitter, LiveJournal and Wikipedia. Some other videos are on more theoretical aspects of scalability such as design of effective data storage systems and effective algorithms to read and modify the data.
Also I found some video lectures on MySQL tuning, clustering and high availability.

Enjoy!
Read the rest of this entry »

Javascript CPU-monitor

jpu.gifДемонстация здесь (http://www.3site.eu/JPU/demo.html). смотрим в правый верхний угол

Andrea Giammarchi создал небольшой (0,5 Kb) javascript мониторинга CPU.

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

Вставить скрипт себе на страницу можно так:

<script type=“text/javascript” src=“http://www.3site.eu/JPU/JPU.js”>
<!–//
JPU - by WebReflection
//–></script>

Запустить скрипт на данной страницы можно нажав тут
Более детально - тут.
З.Ы. Скрипт написан Just for fun - о сверх точности говорить пока рано. 

Nginx

Все умные мальчики насмотрелись презентаций и уже давно установили себе на сервера NGINX.

Полезные линки по теме:

  1. хорошее описание внутренностей
  2. список рассылки 1 http://dir.gmane.org/gmane.comp.web.nginx.russian (читать обязательно)
  3. список рассылки 2 http://www.lexa.ru/nginx-ru/
  4. Nginx memcached rails
  5. Nginx English Wiki

WEB-сервер 0W-httpd (ZeroWait httpd)

Смотрел однажды  доклад разработчиков системы статистики для liveinternet.ru… Так вот один из них сказал, что они используют сервер 0W-httpd, который не доступен в исходниках. Так вот это неправда :)

Сайт программки http://0w.ru/httpd/, свеженькая версия 0.7q вышла недавно…

0W-httpd - производительный и “легкий” web-сервер.

Область применения: сайты со статическим содержимым (”картиночные” сервера, файловые архивы), узкоспециализированные сервера (баннерные, счетчиковые системы), акселератор для высоко-загруженных серверов общего назначения. Фактически производительность ограничена возможностями сетевой карты и жесткого диска.
Read the rest of this entry »

Кропотливая оптимизация PHP-приложений (рассматриваю PHP5, но большинство справедливо и для 4-й ветки)

Не то чтобы “очень классная статья”, но начинающим будет полезна (взято здесь http://www.habrahabr.ru/blog/webdev/19129.html)

Когда во сне снится “ой а если сервера не хватит…”

Для начала, Доброй Ночи. Пишу что-то полезное вроде впервые (если не считать разного рода полу-тестов в моём блоге). Человек я допытливый до жути, неожиданно в голову пришло, что могу помочь сэкономить кому-то много времени ;).

В общем когда на PHP создаются достаточно большие проекты (>100000 строк кода) желание сделать “правильно” то, что было сделано давно грозит повергнуть всё в хаос. По крайней мере для новых программистов, которые могут прийти в компанию через неделю, месяц, год… Решение - четкая систематизация с самого начала и установление жестких архитектурных правил. Для себя я решил - не используя фреймворки писать буду только “Hello World”-сайты. Не мудрствуя лукаво когда подумал о фреймворках полистал, почитал, но решил отдаться-таки зенду с его ZendFramework. Добротный он, хотя и изменений я в нём для себя сделал огромное количество.

В таком решении на ряду со всеми возможными плюсами и удобством неожиданно встаёт вопрос-стена: теперь у меня бизнес логика занимает, наверное, где-то вовсе 1-2% от времени исполнения всей программы. Плата за удобство и ООП (или “удобство ООП”? Наверное даже просто “удобство” или просто “ООП” - это почти одно и то же ;)) - огромное количество сопутствующего и управляющего кода.
Read the rest of this entry »

Scalable web architectures

Полезные презенташки, блоги и т.д. (отсюда http://www.royans.net/arch/library/)

Library

This is a collection of Slides, presentations and videos on topics related to designing of high throughput, scalable, highly available websites I’ve been collecting for a while.
Read the rest of this entry »