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

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

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

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

Переименование файлов с русского на «транслит» в 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: ,

Абидос - еще раз про вертолеты, танки и самолеты
khorsa
Оригинал взят у ankh_ib в Абидос - еще раз про вертолеты, танки и самолеты
Каждый из нас понимает, что прежде, чем составлять суждение по поводу текста, написанного китайскими иероглифами, необходимо знать китайский. И прежде, чем браться за управление легкомоторным самолетом, сделанным в США, необходимо хотя бы перевести инструкцию по его управлению с английского на русский. Иначе нам несдобровать.

Но вот какая удивительная штука - когда люди приступают к изучению древнего Египта, они совершенно забывают о том, что иероглифы - это тоже буквы и слова древнеегипетского языка. Изображения человеческих фигур, животных, растений, предметов быта, головных уборов, частей тела человека или животных и т.п., все это - иероглифы, смысл которых практически не связан с их внешним видом. Например, иероглиф, изображающий сову вовсе не переводится словом "сова". Это - часть речи, которая в зависимости от контекста предложения означает один из предлогов "в, из, на, от, как". А изображение ибиса - это иероглиф, означающий глагол "найти".
Read more...Collapse )

В Microsoft Edge не открываются локальные сайты
khorsa
Про Microsoft Edge.

В случае установленного на 10-й windows апача с кучей локальных сайтов, может возникнуть проблема при тестировании этих сайтов в Microsoft Edge - он сразу будет лезть в интернет, начисто игнорируя файл hosts.

Как традиционно сообщают разработчики Microsoft, это известная проблема движка Spartans и, извините за мой английский, но при переводе теряется весь адский цымес фразы, "we are currently looking into" :D



Что нужно сделать, чтобы всё стало хорошо?

1. Перейти в браузере по адресу "about:flags" и убедиться, что отмечен флажок "Разрешить замыкание на себя для localhost"

2. Зайти в консоль Windows в режиме администратора и выполнить команду:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe


2a. Если десятка старая (до билда 10158), название пакета должно быть другим: Microsoft.Windows.Spartan_cw5n1h2txyewy

3. Перезапустить браузер

4. Ура! Всё заработало!!

?

Log in

No account? Create an account