?

Log in

No account? Create an account
О
khorsa
Этот журнал задуман просто как записная книжка.
Это не сборник злободневных тем, не лента новостей и не рассказы что я ел и куда ходил.

В первую очередь он нужен мне - для того, чтобы сваливать в кучу всё полезное и бесполезное, на что обратилось моё внимание.

Если кто-то, пролистав записи, задастся вопросом "зачем всё это?", он, в первую очередь, спросит это у себя.

Ну, а если кому-то что-то покажется интересным, я буду за него рад.

Зомби тоже люди.
khorsa

Источником вдохновения послужила вот эта статья: http://rvs.su/statia/zombi-burgery-po-finski-prichastis-chelovechinoy-i-stan-ponaroshku-zombi. У меня нет цели критиковать данную статью, разбирать её, искать какие-то логические или мировоззренческие ошибки – это всего лишь была опорная точка для жизнерадостных графоманских рассуждений. Хотя, если вы заметите в них критику – что же, я не хотел никого обидеть, просто повезло.

С чего начнём? Начнём, понятное дело, с тезисов:

1. Материя - первична, сознание – вторично. Из этого простого постулата материализма (верного, кстати, только с общефилософских, не строго материалистических, позиций, но об этом в другой раз) следует, что любое проявление общественного сознания – в фильмах, книгах, песнях, видеоиграх – лишь следствие скрытых, глубинных движений базиса – той основы, которая удовлетворяет витальные потребности человека.

Read more...Collapse )

xsendfile для apache
khorsa

Для Windows:

На офсайте модуля (https://tn123.org/mod_xsendfile/) автор (да продлит Аллах его годы) говорит: нету у меня виндовс-версии для x64 — качайте исходники, компилируйте вижуал студией и будет вам счастье. Но мыжпрограммисты, и, конечно, не будем ничего компилировать. 

1. Отсюда качаем mod_xsendfile (на всякий случай оба — и для x64 и для 86)
http://www.apachelounge.com/download/

2. Копируем .so файл в папку модулей апача — в зависимости от разрядности винды. А если не заработает с родной разрядностью, то наоборот :)

3. В httpd.conf пихаем строчку:
LoadModule xsendfile_module modules/mod_xsendfile.so

4. Рестартим апач

5. Проверяем по phpinfo(), что xsendfile установился. Или запускаем из командной строки httpd -M (хотя зачем, мы же не линуксоиды :)

Для CentOS:

На офсайте модуля (https://tn123.org/mod_xsendfile/) автор (да убелит Аллах его бороду) говорит «качайте вгетом и инсталлируйте dev-тулзами апача». Но мы, конечно, опять его не послушаемся!

1. Потому что можно инсталлировать модуль из стандартного репозитория: yum install mod_xsendfile.x86_64 (при необходимости перед этим — yum search xsendfile)

2. Рестартим апач: service httpd restart (добавлять в конфиг не надо — само должно залезть)

3. Смотрим, установился ли модуль: httpd -M

Зачем это надо?

Read more...Collapse )

Переименование файлов с русского на «транслит» в Total Commander
khorsa

Иногда бывает нужно переименовать большое количество файлов с русскими названиями на «транслит», т.е. написать названия файлов латинским алфавитом. Обычно таким образом переименовывают файлы, которые выкладываются где-то в интернете, т.к. буквы кириллицы отображаются не всегда корректно. К примеру, стандарт URL использует набор символов US-ASCII. Это имеет серьезный недостаток, поскольку в нем разрешается использовать лишь латинские буквы, цифры и несколько знаков пунктуации. Все другие символы необходимо перекодировать. Буквы кириллицы тоже должны перекодироваться. Перекодирующая кодировка описана в стандартах RFC 2396 и RFC 3986, и называется URL-encoding, URLencoded или percent‐encoding. Поэтому для красоты лучше названия файлов в интернете писать латинскими буквами.

А теперь посмотрим как делается переименование файлов (групповое в том числе).

«Транслит» имен файлов

1. Открываем Total Commander, выделяем нужные файлы и жмем «Файл» → «Групповое переименование…» (или на клавиатуре сочетание клавиш Ctrl+M)

2. В открывшемся окошке ищем поля «Поиск и замена»

В поле «Найти» пишем:


а|б|в|г|д|е|ё|ж|з|и|й|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я| |,|µ|«|»|(|)


А в поле «Заменить на»:


a|b|v|g|d|e|e|zh|z|i|j|k|l|m|n|o|p|r|s|t|u|f|h|c|ch|sh|sch||y||e|ju|ja|-||u||||


3. После этого собственно жмем «Выполнить». И все, задача выполнена.


Canonical в битриксе
khorsa
Вставляем в

$APPLICATION->AddHeadString('<link rel="canonical" href="http://site.ru' . str_replace('index.php', '', $APPLICATION->GetCurPage(true)) . '" >');?>


Наслаждаемся.

Flexy CMS 4.9
khorsa
Очередные титанические усилия по разработке CMS дали верисю 4.9 (в промежутке была версия 4.8, про неё в жж вроде не писал)

Качать тут: http://flexy-cms.net/download

История версий

Версия 4.9 (31.12.2017)

1. В модуле Core исправлена незначительная ошибка работы с локализационной таблицей
2. В шаблонах и динамических страницах теперь можно применять константы-заменители ##TEMPLATE_PATH## и ##SITE_PATH## - при формировании страницы они будут замещены соответствующими путями.
3. В модуль Core добавлен класс Pager - для обеспечения пагинации страниц
4. В модуле dynamicpages исправлен механизм регистрации стилей и скриптов
5. В модуле admin исправлена ошибка очистки буфера
6. В модуль admin добавлен класс AdminListPaged, обеспечивающий постраничное отображение списка.
7. Доработан модуль Articles для постраничного отображения статей.
8. В модуль Settings добавлена возможность создавать дополнительные настройки из панели управления (в режиме "Управление сайтами")
9. Улучшена работа с тэгами - добавлен внешний модуль taggingJS, доработан модуль Articles
10. В редактор админки добавлен модуль типографирования текста
11. В модуле Sites модифицирован механизм импорта сайта.
12. Начаты работы по созданию и настройке дополнительных модулей пользователя.
13. В модуле Core в классе Image внесены правки - теперь он может работать автономно, без подгрузки ядра

Версия 4.8 (26.08.2017)
1. В модуле Core изменено поведение объекта DbObject - при вызове random() на пустом объекте теперь возвращается пустой объект, исключение больше не выбрасывается.
2. В модуле Sections исправлена редкая ошибка при роутинге
3. Разработан модуль Polls для реализации опросов на сайте
4. Разработан модуль Forms для реализации форм на сайте
5. В модуль Socials добавлен инстаграм
6. В модуль Sites добавлен статический метод getAddress, возвращающий полный (с протоколом и портом) адрес текущего сайта
7. В модуль Articles добавлена возможность назначать категории статей изображение, сделана автоматическая генерация SEO-ссылки
8. В модуль Articles добавлен вызов события пересчёта структуры сайта при изменении ссылки на статью
9. В модуле Menu разделены название пункта и надпись на сайте.
10. В модуле Articles исправлена редкая ошибка - при нажатии "Применить" во view не передавался идентификатор статьи, что могло привести к созданию статьи-дубликата
11. В модуль Articles добавлена возможность запрещать или разрешать тэги для статьи.
12. В модуль Articles добавлена возможность задавать тип описания для статей - обычный, без описания или автоматически формируемой из текста.
13. В модуль Users добавлена возможность добавлять фото пользователя (для каждого сайта отдельно)
14. Внешний модуль CodeMirror обновлён до версии 5.28.0
15. Добавлен внешний модуль Bootstrap. По умолчанию содержит только CSS с сеткой-24
16. Полностью пересобрана работа со стилями и скриптами - теперь они встают в правильно порядке, кэшируются, плюс стили обрабатываются компилятором SCSS
17. Весь кэш, включая кэш внешнего модуля FileManager теперь находится в директории сайта .cache
18. Внешние модули снабжены xml-файлами с описанием, в backend-контроллер modules (и, соответственно, в админку) добавлена возможность посмотреть список и информацию о модулях.
19. Исправлена редкая ошибка в модуле sites, приводившая к невозможности переименовать каталог сайта

Всё было
khorsa
----

Идеалистический подход нередко встречается среди многих социалистов. Многие искренние социалисты, например, считают действительным пороком капитализма то, что товары несправедливо распределяются, и что если бы мы только могли заставить всех, включая капиталистов, принять новые принципы справедливости и права, то в таком случае мы могли бы покончить с пороками капитализма. Социализм для них не что иное, как осуществление абстрактной идеи справедливости. Идеалистическая сущность такого мнения заключается в предположении, что только идеи, которых мы придерживаемся, определяют образ нашей жизни и способ организации общества. Те, которые так думают, забывают искать материальные причины.

Если мы не поймём этого, тогда мы не сможем найти успешного способа борьбы за социализм. Мы обнаружим, что наши социалистические идеалы постоянно вызывают разочарование и теряют доверие. Таков был на самом деле опыт социализма в Англии.

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

----

(c) Морис Корнфорт, 1956 год

Apache MPM Prefork
khorsa

Настройка Apache MPM

Модуль Apache MPM расшифровывается как Apache

Multi-Processing Module, что в переводе означает «Модуль мультипроцессовой обработки». Обычно по-умолчанию в Apache используется модуль MPM prefork. Определить, какой именно менно модуль Apache MPM используется, можно следующей командой:


httpd -V | grep mpm
-D APACHE_MPM_DIR="server/mpm/prefork"


Или на системах, подобных Debian, где сервер называется apache2:

apache2 -V | grep mpm
 -D APACHE_MPM_DIR="server/mpm/prefork"


Рассмотрим настройку параметров модуля Apache MPM prefork, исходя из объема оперативной памяти на хосте. Определим средний размер памяти, занимаемый одним процессом Apache:
ps -ylC httpd | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): \
   "x/1024; print "Average Proccess Size (MB): "x/((y-1)*1024)}'


На системах, где сервер Apache представлен демоном apache2, замените в строке httpd на apache2. Команда покажет общий объем памяти, потребляемой всеми процессами Apache и средний объем памяти на один процесс. Примеры:

[root@centos ~]# ps -ylC httpd | awk '{x += $8;y += 1} \
   END {print "Apache Memory Usage (MB): "x/1024; \
   print "Average Proccess Size (MB): "x/((y-1)*1024)}'
Apache Memory Usage (MB): 64.3789
Average Proccess Size (MB): 10.7298


В дистрибутивах, подобных Debian:

user@debian:~$ ps -ylC apache2 | awk '{x += $8;y += 1} \
   END {print "Apache Memory Usage (MB): "x/1024; \
   print "Average Proccess Size (MB): "x/((y-1)*1024)}'
Apache Memory Usage (MB): 231.531
Average Proccess Size (MB): 13.6195


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

Теперь, зная средний объем памяти, используемый сервером Apache, и зная объем физической памяти, можно вычислить значение MaxClients, которое задается в файле конфигурации сервера Apache httpd.conf.

Допустим, на вашем VPS или VDS сервере 1 Гб оперативной памяти, и вы хотите оставить 512 Мб для остальных процессов, отдав серверу Apache 512 Мб.

Предыдущая команда выдала результаты:


[root@centos ~]# ps -ylC httpd | awk '{x += $8;y += 1} \
   END {print "Apache Memory Usage (MB): "x/1024; \
   print "Average Proccess Size (MB): "x/((y-1)*1024)}'
Apache Memory Usage (MB): 64.3789
Average Proccess Size (MB): 10.7298


Т.е. на один процесс Apache в среднем уходит 10 Мб памяти. Определим значение MaxClients:

MaxClients = Весь объем памяти для Apache / Объем памяти на один процесс

MaxClients = 512 Мб / 10 МБ = 50.

Теперь мы знаем самое важное значение параметра модуля Apache MPM prefork, задающее
максимальное число дочерних процессов таким, чтобы не была "съедена"
вся оперативная память, а только часть ее (в нашем примере - половина,
равная 512 Мб).

Внесем данные в файл настроки модуля Apache MPM prefork, обычно располагающийся по пути /etc/httpd/conf/httpd.conf:


StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxClients 50
ServerLimit 50
MaxRequestsPerChild 100
KeepAlive Off 



После внесения рестартим апач:

service httpd restart
или
apachectl restart



Конфиг MPM можно не вносить в httpd, а положить отдельно в /etc/httpd/conf.d

Краткое описание параметров модуля Apache MPM Prefork:

StartServers - число дочерних процессов, создаваемых при запуске сервера.

MinSpareServers -  минимальное число неиспользуемых (запасных) дочерних процессов сервера, ожидающих потенциальные запросы.

MaxSpareServers — максимальное число запасных
процессов, ожидающих потенциальные запросы. Если это число будет
превышено, лишние процессы будут убиты.

MaxClients — самый важный параметр модуля MPM
prefork, устанавливает верхний предел количества одновременно активных
процессов. Именно от него зависит потребление памяти. Его значение
перекрывает значение предыдущих параметров.

ServerLimit обычно равен MaxClients.

MaxRequestsPerChild - как часто сервер
перерабатывает процессы, убивая старые и начиная (запуская) новые.
Полезен при утечках памяти Apache и его библиотек.

KeepAlive - обеспечивает долгоживущие сессии HTTP,
позволяющие отправлять несколько запросов через одно и то же соединение.
Полезно включить, если страницы содержат много изображений.


Bitrix - Как добавить свое (кастомное) поле (телефон) при регистрации пользователя
khorsa

В интернете описано достаточно большое кол-во статей на данную тему,  но так как у нас Bitrix, каждый решает данную задачу по-своему. На  просторах сети нашел достаточно простое решение реализации данной  задачи. 

Итак, первое что нам нужно сделать, чтобы добавить поле телефон при  регистрации пользователя в CMS Bitrix - это зайти в админку. Далее идем в  Настройки->Пользователи->Список пользователей.

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

Далее нажимаем "Добавить пользовательское поле" и заполняем его характеристики

В моем случае с полем "Телефон" я заполнил следующим образом:

Тип данных (можно задать только для нового поля): Строка   

Объект: USER   

Код поля (можно задать только для нового поля): UF_PHONE    

Обязательное: (отмечаю чекбокс)

И добавляем подписи для языков.

И далее остается заполнить остальные характеристики с  переводом. Сохраняем - смотрим форму регистрации и всё - мы с вами  добавили кастомное поле при регистрации пользователя в CMS BItrix!


Простой способ сделать placeholder на select
khorsa
<select name="combobrand">
    <option value="" disabled="disabled" selected="selected" style="display:none;">Выберите из списка</option>
    <option>test1</option>
    <option>test2</option>
    <option>test3</option>
    <option>test4</option>
</select>
Всё просто :D Пример: https://jsfiddle.net/4z61h62n/
Tags: ,