Pull to refresh
QQQQQQQQ @garexread⁠-⁠only

User

Send message
Пиналы идут боком — в результате должен быть качественный продукт. А ставить всё так или эдак — на это нам мозг даден.

С т.з. удобства записывания/запоминания папеты/шефы удобны. Т.к. всё можно в одном месте держать и уже видеть по истории что когда и почему делалось.

Можно даже не юзать спец-модулей — а всё в одном главном делать. Потом уже как опыт будет и рука набьется — перейти на модули. Но это опять не золотая птица щастья.
Эт пример коммита из одного из модулей для папета.

По поводу оптимальности — надо смотреть есть ли смысл вообще? Напр., если ничего не течёт, то можно и не делать этого.

Я когда настраивал в одном месте, смотрел и видел, что php-fpm понаоткрывал кучу файлов, а закрыть их не судьба. Это можно lsof`ом посмотреть. Проблема была или в нём, или в одном из модулей php`шных. В общем подобная штука помогает просто делать «reset» и всё. Как грится — не работает? Перезагрузите компутер.

Для более грамотных вариантов надо просто вручную всё собирать и ставить/выбирать версии, которые не текут или уже пофикшены.
Упс… Точно праздники на носу. Я — сам себе злобная буратина :)
Данная операция в php-fpm, на наш взгляд, весьма тривиальна:


Скопировать файл, поправить в нём юзеров и порт — нетривиально? Эээ… Ну тогда пишите скрипты или используйте папеты/шефы.

Напр., в модуле папета это можно сделать так:

nginx::backend::php {"Another site":
    port        => 9001,
    try_files   => '$uri $uri/ $uri/index.html /index.php?url=$uri&$args',
    pool_user   => "www-data2",
    pool_group  => "www-data2",
  }


И вручную или через пол-часа новый пул сам там будет.

Да даже просто ручками — что сложного скопировать *.conf и поправить там 3 значения? Можно вообще заранее себе подготовить шаблон *.conf`а с только нужными значениями, который копи-пастить.

Прям катарсис у меня от такого заявления :)
Hmm… Do you mean the case, when we use single table for two/more classes?

Like this --> martinfowler.com/eaaCatalog/singleTableInheritance.html

?

I just cant' understand those case like «no value by nature». Why then we have column for it??? Can you provide some eral-life example?
Сокеты не всегда хороши (на linux`ах):

* http://forum.nginx.org/read.php?3,97959,99123#msg-99123
* www.saltwaterc.eu/nginx-php-fpm-for-high-loaded-websites.html

Поэтому гуглим, что такое net.core.somaxconn и почему по дефолту мы будем иметь только 128 конкурентных коннектов. А особенно если мы юзаем только один дефолтный пул, то 502 будет частой гостьей.

Также в php-fpm желательно добавить защиту от криворучия сторонних модулей: pm.max_requests (чтобы «перезагружаться» после стольки-то реквестов) & rlimit_files (лимиты на открытые файлы).
@sее github.com/garex/puppet-module-nginx/commit/700cee70841b9781be77815aa38f4560c34041f7
Sorry, but comrade Codd confused storage with validation. If we have situation, where we should have the data but not have it — ti should be managed on app level or in case of complex DB-side solutions — in just not-null or triggers side.

Inapplicable NULL is something wrong — it's same as have in one DB column for two purposes. For example we have some GOD-mode shitti app and some table with some positive number values and instead of adding new column like something_type, we start to add in this column another values but negative. It's a bad practice. I think industry did it right to leave only one-purpose NULL value.
Хоо… Начальнек, который даёт такое указание как будто не в России?

Отдел К — такой же отдел состоящий из стандартных чиновников.

interface Чиновник {
     public function дайБабла(BiiigMoney $yea);
}
oops, точно!

Хотя выглядит по-уродски по сравнению с более православными руби и питоном:

ustimenko@home:~$ php -r 'var_dump(0 == bccomp(bcsub(1, "0.7", 2), "0.3", 2));'
bool(true)


Причем ещё надо явно precision указывать — пипец…
Кстати, да. Нужна некая золотая середина — некий Андронный Павел.
В php нету из коробки, но можно заюзать java`вскую через extension кастомный.
Однострочники:

ustimenko@home:~$ ruby -e 'print(1 - 0.7 == 0.3); print("\n");'
false
ustimenko@home:~$ ruby -e 'require "bigdecimal"; print(BigDecimal.new("1") - BigDecimal.new("0.7") == BigDecimal.new("0.30000")); print("\n");'
true

ustimenko@home:~$ python -c 'print (1 - 0.7 == 0.3)'
False
python -c 'from decimal import *; print (1 - Decimal("0.7") == Decimal("0.3"))'
True
Наивно. Не всякий бизнес имеет ресурс (временной/мозговой) на Refactoring.
Время/деньги/качество. Первый курс института народного хозяйства. Либо лебедь/рак/щука.

Всегда надо работать на результат. Но под ним мы должны понимать не просто «результат», а результат в сочетании время/деньги, деньги/качество, время/качество.

Или када общаешься с конторой, уточни, что мы понимаем под «результатом». Результат быстро != результат качественно.

ТС, а что так много ненависти сквозит? :)
Примеры в студию — желательно тупейшие. Можно и те и те.
en.wikipedia.org/wiki/Floating_point#Accuracy_problems

# Пример на php (прочие языки таковы же)
ustimenko@home:~$ php -r 'var_dump((1 - 0.7) == 0.3);'
bool(false)
# Ибо
ustimenko@home:~$ php -d precision=32 -r 'var_dump((1 - 0.7), 0.3);'
float(0.30000000000000004440892098500626)
float(0.29999999999999998889776975374843)
О, прикольная фишка! Надо на заметку взять :))

— Так, платите мне 100500 денег!
— А где вы работали?
— Я работал во мнооогих местах, но NDA, не могу вам рассказать.
— Ок, а чем вы там занимались?
— NDA`ил конечно.
— Хм… А что такое например CRUD? Или Observer pattern? Ну или сколько будет 8 | 16 &~ 32?
— NDA! Это единственное умное сочетание которое я знаю.
Надо пригласить психолога для ТС — полезные местами вещи смачно перемешаны с обидами на более решительных умных товарищей.
nginx try_files $uri @рhp?

Information

Rating
Does not participate
Location
Краснодарский край, Россия
Date of birth
Registered
Activity