Архив автора: admin

Постеры и плакаты в домашних условиях

http://www.blockposters.com

Изображения для печати в большом формате, так называемые постеры или плакаты, можно подготовить в домашних условиях с использованием веб-инструмента  Blockposters.
Читать

Отправка почты из Fedora

В статье приводится алгоритм настройки утилиты msmtp. Это позволит отправлять почту как из консоли, так и из виртуальных хостов (полезно при разработке сайтов). С большой долей вероятности данные советы будут работать и на других современных ОС семейства Linux (благодаря повсеместному внедрению systemd).
Устанавливаем msmtp: Читать

Микрофоллин: гормональный препарат

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

Что представляет собой микрофоллин

Активным действующим веществом микрофоллина является этинилэстрадиол (синтетический аналог эстрогенов – женских половых гормонов). Дополнительные вещества, входящие в состав микрофоллина, это: тальк, кукурузный крахмал, стеарат магния, диоксид кремния, желатин и моногидрат лактозы. Выпускается препарат в таблетках, капсулах и драже, с дозировкой 0,05 мг.

Этинилэстрадиол входит в состав многих противозачаточных таблеток (Марвелон, Логест, Силест и другие).

Фармакологическое действие микрофоллина

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

Показания к применению микрофоллина

Показания к применению микрофоллина складываются из его фармакологического действия:

Противопоказания к применению микрофоллина

Как и любое лекарство, микрофоллин обладает рядом противопоказаний к его назначению:

Побочные действия микрофоллина

Побочные эффекты возникают в связи с передозировкой или назначением больших доз препарата.

Наиболее частые побочные эффекты:

Редко встречаются:

Дружим PHPExcel с Битрикс

Зачем Excel

Иногда при разработке сайта на Битриксе возникает необходимость генерировать файлы Excel. Лично мне этот формат (т.е. родные форматы Excel) не нравится. Но менеджерам, зачастую, это ближе к сердцу, чем CSV. Как показывает практика, офисные сотрудники не всегда могут совладать с юникодом при открытии файлов CSV через MS Excel (вот, пора уже переходить на открытые аналоги, типа LibreOffice). Для таких вот запущенных случаев, нужно генерировать родные форматы Excel.

Из PHP генерацию фалов Excel можно делать с помощью распространённой библиотеки PHPExcel. Говорят, что эта библиотека не подходит для генерации больших и сложных документов. Но мне нужно было делать совсем маленькие Excel документы с простой таблицей и особым именем листа. Кстати, если вам не нужно давать листам названия, то можно поступить проще, — так же, как это делает сам Битрикс, — генерировать Excel документ через HTML. Но я использовал старую версию библиотеки PHPexcel — https://github.com/PHPOffice/PHPExcel, т.к. мне нужно было настроить работу на PHP 5.5. Вообще же лучше последовать рекомендациям разработчиков и использовать более новый вариант этой библиотеки — https://github.com/PHPOffice/PhpSpreadsheet

Проблема интеграции PHPExcel с Битриксом

Битрикс требует настройки mbstring.func_overload=2 и не работает с другими значениями. PHPExcel требует mbstring.func_overload=0 и не работает с другими значениями. Если на сервере используется Apache, то есть вариант настроить этот параметр в целом для хоста и задать отдельное значение для определённого каталога. Если у вас Apache, то дальше читать вам не обязателно. Но при использовании nginx + php-fpm задать mbstring.func_overload можно только для всего пула, без каких-либо исключений. Так как же быть в этом случае? При определённом стечении обстоятельств, PHPExcel нормально работает и с mbstring.func_overload=2. Проверено, что генерация работает успешно при настройке сайта на работу с UTF-8 и использовании XLSX формата. Нужно лишь отключить встроенную проверку mbstring.func_overload в библиотеке PHPExcel.

Отключаем проверку mbstring.func_overload

Для установки библиотек в Битриксе удобно использовать composer. Если composer установлен глобально, то можно выполнить команду установки:

composer require phpoffice/phpexcel

Я, например, это делал из каталога bitrix/php_interface/include/lib
В моём случае файл, в котором происходит проверка значения mbstring.func_overload — это bitrix/php_interface/include/lib/vendor/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php
В этом скрипте есть такие строки:

// check mbstring.func_overload
if (ini_get('mbstring.func_overload') & 2) {
    throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
}

Если эти строки удалить, то проверка значения mbstring.func_overload производиться не будет. Но, если это сделать простам редактированием файла, то при следующем обновлении библиотек через composer update велика вероятность, что обновится и PHPExcel, и это изменение затрётся. Тогда придётся повторять удаление ещё раз. Чтобы немного упростить себе жизнь, автоматизируем это удаление.
Composer позволяет выполнять определённые скрипты по событиям. Нам нужно определить выполнение нашего патча на событие установки (для внедрения) и на событие обновления. В моём случае, в каталоге bitrix/php_interface/include/lib лежит файл composer.json следующего содержимого:

{
    "require": {
        "phpoffice/phpexcel": "^1.8" 
   },
    "config": {
        "bin-dir": "vendor/bin"
    },
    "scripts": {
        "post-install-cmd": [
            "phpexcel_mbstring_patch.sh"
        ],
        "post-update-cmd": [
            "phpexcel_mbstring_patch.sh"
        ]
    }
}

Тут в секции «require» задана установка библиотеки PHPExcel. В секции
«config» задан каталог для размещения дополнительных скриптов (куда мы и разместим свой патч). В секции «scripts» оп
ределены на какие события, какие скрипты выполнять, — в нашем случае это один и тот же патч для установки и для обновления пакетов через composer.

Создаём скрипт-патч bitrix/php_interface/include/lib/vendor/bin/phpexcel_mbstring_patch.sh со следующим содержимым:

#!/bin/bash

# Change directory to the script’s location
cd $(dirname $(readlink -e $0))

file4Patch=»../phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php»
fileTmp=»../phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php.tmp»

# Remove this code:
# // check mbstring.func_overload
# if (ini_get(‘mbstring.func_overload’) & 2) {
#     throw new PHPExcel_Exception(‘Multibyte function overloading in PHP must be disabled for string functions (2).’);
# }
cat $file4Patch | awk -v p=1 ‘/mbstring/ {p=0} p {print $0} /}/ {p=1}’ > $fileTmp
mv -v $fileTmp $file4Patch

Поясню, что тут происходит. Это bash скрипт. Сначала определяется рабочий каталог (тот, откуда запускается патч). Затем в две переменные задаём файл, который будем патчить и временный файл, который нужен для обработки (он удаляется в конце). А дальше происходит сама магия. С помощью утилиты awk удаляется всё содержимое между строками (включая сами эти строки), содержащими «mbstring» и «}». Это как раз проверка, которая нам не нужна в PHPExcel (что и обозначено в комментарии перед магической командой). Далее просто временным файлом (в котором произведено удаление строк) подменяется исходный файл.
Это будет работать при каждом обновлении пакетов через composer до тех пор, пока в PHPExcel сохраняется такая проверка mbstring.func_overload.

Бонус

В качестве бонуса в статье приведу код функции, который генерирует XLSX файл с особым названием листа. Первая строка документа — названия колонок. Все последующие строки — данные колонок.

/**
 * Метод формирует файл Excel из массива данных
 * @param string $fileFullName Полный путь к создаваемому файлу
 * @param string $fileTitle Заголовок файла
 * @param array $arData Массив данных для записи в файл. Массив из двух вложенных массивов:
 *     первая позиция с ключём "HEADER"
 *     вторая позиция с ключём "ROWS"
 * @return mixed Возвращает сформированный файл (его полный путь) либо ЛОЖЬ в случае ошибки
 *
 */
public function arrayToExcel($fileFullName, $fileTitle, $arData)
{
    if (!empty($fileFullName) && is_array($arData)) {
        try {
            $objPHPExcel = new PHPExcel();
            // Set document properties
            $objPHPExcel->getProperties()->setCreator('Site's script')
                                         ->setLastModifiedBy('Site's script')
                                         ->setTitle($fileTitle)
                                         ->setSubject($fileTitle);
            // Add some data
            foreach ($arData as $dataType => $arDataset) {
                if ($dataType == 'HEADER') {
                    $arColumnValType = [];
                    foreach ($arDataset as $keyHeader => $valueHeader) {
                        if (isset($valueHeader['NAME'])) {
                            $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(
                                $keyHeader,
                                1,
                                $valueHeader['NAME']
                            );
                            if (isset($valueHeader['TYPE'])) {
                                $arColumnValType[$keyHeader] = $valueHeader['TYPE'];
                            } else {
                                $arColumnValType[$keyHeader] = PHPExcel_Cell_DataType::TYPE_STRING2;
                            }
                        }
                    }
                } elseif ($dataType == 'ROWS') {
                    foreach ($arDataset as $indexRow => $row) {
                        if (count($row) == count($arData['HEADER'])) {
                            foreach ($row as $indexColumn => $value) {
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicitByColumnAndRow(
                                    $indexColumn,
                                    ($indexRow + 2),
                                    $value,
                                    $arColumnValType[$indexColumn]
                                );
                            }
                        } else {
                            AddMessage2Log('Переданы данные с ошибкой: не совпадает количество столбцов заголовка и количество столбцов данных в строке #' . $indexRow);
                        }
                    }
                }
            }

// Установим выравнивание ячеек по ширине содержимого
for ($i = 0; $i <= count($arData[‘HEADER’]); $i++) {
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($i)->setAutoSize(true);
}

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle(‘MyNameOfList’);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


Лечение геморрагического цистита: устранение возбудителя инфекции

лечение геморрагического циститаВне зависимости от причины, вызвавшей неинфекционный геморрагический цистит, лечение этого заболевания всегда практически одинаково. Важный аспект лечения — анализ мочи, выполняющийся для исключения возможности бактериального цистита. Основная цель лечения геморрагического цистита — устранение агента, вызвавшего цистит.

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

Процесс лечения

На первом этапе лечения геморрагического цистита проводится ирригация мочевого пузыря стерильной водой, растворяющей красные кровяные тельца и кровяные сгустки. После этого выполняется регулярная ирригация мочевого пузыря стандартным физиологическим раствором. Если ирригация мочевого пузыря, лизирующая (растворяющая) кровяные сгустки, невозможна, для лечения геморрагического цистита требуется цистоскопия, выполняющаяся под анестезией, и сопутствующее лечение антибиотиками. Хотя регулярная ирригация мочевого пузыря физраствором не выполняет тех же функций, что ирригация стерильной водой (то есть не растворяет кровяные сгустки), такая процедура помогает предотвратить дальнейшее образование сгустков при геморрагическом цистите.

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

Карбопрост трометамин — еще один препарат, применяющийся для лечения геморрагического цистита. Это вещество вызывает сокращения гладкой мускулатуры стенок кровеносных сосудов и применяется, в основном, для ирригации мочевого пузыря при лечении геморрагического цистита, вызванного циклофосфамидом. Главное достоинство карбопроста в лечении геморрагического цистита — этот препарат не вызывает боли при ирригации мочевого пузыря.

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

Геморрагический цистит при химиотерапии

Для химиотерапии злокачественных опухолей применяется циклофосфамид — препарат, в процессе обмена веществ образующий акролеин, раздражающий слизистую мочевого пузыря и, в конечном итоге, повреждающий слизистую и вызывающий кровотечение. Токсичность циклофосфамида может быть снижена за счет одновременного приема некоторых препаратов — в частности, пентосана полисульфата, 2-меркаптоэтанесульфоната (месна), амифостина, N-ацетилцистеина (мукомист). Эти вещества, связывая молекулы акролеина, образуют стабильные не токсичные для слизистой мочевого пузыря соединения. Поскольку мукомист снижает химиотерапевтический эффект циклофосфамида, этот препарат применяется реже, чем месна.

Месна — препарат, предназначенный для перорального либо внутривенного применения и рекомендованный при химиотерапии циклофосфамидом и изофосфамидом. Препарат особенно эффективен в профилактике, предотвращении геморрагического цистита, а вот лечение месной развивающегося в результате химиотерапии геморрагического цистита куда менее продуктивно.

Вирусный геморрагический цистит

Для лечения вирусного геморрагического цистита у пациентов с иммунодефицитом и при иммуносупрессивной терапии применяются антивирусные препараты (цидофовир, видарабин, рибаварин) внутривенно, внутримышечно или перорально. Для лечения геморрагического цистита, вызванного ВК-вирусом (полиомавирусом человека 1), применяется гиалуронат (препарат вводится в мочевой пузырь), для лечения цистита, вызванного JC-вирусом, еще одним представителем группы полиомавирусов — рисперидон.

Как заработать на блоге? — сервисы и способы

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

Прежде всего, чтобы ваш сайт начинал приносить вам прибыль, вы должны над ним хорошенько поработать — правильно настроить, красиво оформить, заполнить контентом и раскрутить.На деле скажу вам, что это не так уж и легко как на словах. Ну ладно, давайте по существу. Я перечислил несколько сервисов и советов для заработка на вашем блоге:

Читать