Статус присутствия Skype for Business
Сергей Болдин
SELECT LOWER(UserAtHost) AS UserAtHost, Status=
CASE
WHEN Availability BETWEEN 0 AND 2999 THEN Availability
WHEN Availability BETWEEN 3000 AND 4499 THEN 'Available'
WHEN Availability BETWEEN 4500 AND 5999 THEN 'Available - Idle'
WHEN Availability BETWEEN 6000 AND 7499 THEN 'Busy'
WHEN Availability BETWEEN 7500 AND 8999 THEN 'Busy - Idle'
WHEN Availability BETWEEN 9000 AND 11999 THEN 'Do not Disturb'
WHEN Availability BETWEEN 12000 AND 14999 THEN 'Be right back'
WHEN Availability BETWEEN 15000 AND 17999 THEN 'Away'
WHEN Availability >= 18000 THEN 'Offline'
END,
LastPubTime
FROM rtc.dbo.Resource Resource RIGHT JOIN (
SELECT Instance.PublisherId, SUBSTRING(Instance.Data, CHARINDEX('', Instance.Data) + 14, CHARINDEX('', Instance.Data) - CHARINDEX('', Instance.Data) - 14) AS Availability, Instance.LastPubTime
FROM (SELECT PublisherId, cast(substring(Data, 0, 256) AS varchar(256)) AS Data, LastPubTime
FROM rtcdyn.dbo.PublishedInstance
WHERE ContainerNum = 2 AND CategoryId = 4 UNION ALL
SELECT PublisherId, cast(substring(Data, 0, 256) AS varchar(256)) AS Data, LastPubTime
FROM rtc.dbo.PublishedStaticInstance
WHERE ContainerNum = 2 AND CategoryId = 4) AS Instance
WHERE CHARINDEX('aggregateState', Data) > 0) AS UserAndAvailability ON Resource.ResourceId = PublisherId
ORDER BY UserAtHost, LastPubTime DESC
"C:\Program Files\Microsoft SQL Server\MSSQL12.RTCLOCAL\MSSQL\Binn\sqlservr.exe" -m sRTCLOCAL
cast (datediff (minute, LastPubTime, getutcdate()) as varchar)+' '+'min' as TimeOut, (LastPubTime + cast('3:00' as datetime)) as LastPubTime
while ($row = mssql_fetch_assoc($result))
{
if(strcmp($row[Status],"Offline")==0)
{
$row[Status]="Не в сети";
$row[Status]="".$row[Status]."";
}
if(strcmp($row[Status],"Away")==0)
{
$row[Status]="Нет на месте";
$row[Status]="".$row[Status]."";
$row[TimeOut]=NULL;
}
if(strcmp($row[Status],"Available")==0)
{
$row[Status]="В сети";
$row[Status]="".$row[Status]."";
$row[TimeOut]=NULL;
}
$output[]=$row;
}
{
header: 'Время отсутствия',
cls: 'columnHeaderTextBold',
cls: 'columnHeaderTextAlignCenterAndBold',
sortable: true,
align: 'center',
width: 130,
dataIndex: 'TimeOut'
}
-----------------------------------------------------------------------------------------
Microsoft Exchange Server. Часть 1. Обзор штатных средств и методов восстановления БД
Иван Передерий
Set-Mailbox Petr -SingleItemRecoveryEnabled $True -RetainDeletedItemsFor 60
New-MailboxExportRequest -Mailbox Petr -FilePath "\\Ex\PST\Petr.pst"
Set-Mailbox Aleksey -LitigationHoldEnabled $True
New-ManagementRoleAssignment -Role "Legal Hold" -User "Legal Hold Role Assignment"
New-ManagementRoleAssignment -Role "Mailbox Search" -User -Name "Mailbox Search Role Assignment"
New-Mailbox NewSearch -Discovery -UserPrincipalName NewSearch@doc.ru
Add-MailboxPermission NewSearch -User Admin1 -AccessRights Fullaccess -InheritanceType all
New-MailboxImportRequest -Mailbox Petr -FilePath \\Ex\PST\Petr.pst -TargetRootFolder "Восстановленное_ДМС"
New-MailboxSearch "Кирилл" -SourceMailboxes "Kirill" -InPlaceHoldEnabled $true -ItemHoldPeriod 90
New-MailboxRepairRequest -Mailbox Evgeny -CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView
New-MailboxRepairRequest –Database Database1 -CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView
Get-MailboxDatabase Database1 | Get-MailboxStatistics | ft DisplayName,DisconnectReason
Eseutil /mh <путь к файлу .edb>
Eseutil /ml <префикс_лог-файлов_БД>
Eseutil /mh C:\Databases\Database2\Database2.edb
Eseutil /r
Eseutil /p
Eseutil /d
Setup /m:RecoverServer
-----------------------------------------------------------------------------------------
Программная реализация в 1С варианта головоломки «Песенка спета» по Арсаку
Кирилл Ткаченко
Перем ИскомыйРезультат;
Перем Числа;
Перем Операции;
Перем НомерОперации;
Процедура ИнициализацияПеременных()
Числа = Новый Массив();
Операции = Новый Соответствие();
НомерОперации = -1;
КонецПроцедуры
Процедура ВводДанных()
ИскомыйРезультат = 370;
Числа.Добавить(100);
Числа.Добавить(75);
Числа.Добавить(50);
Числа.Добавить(25);
Числа.Добавить(10);
Числа.Добавить(10);
КонецПроцедуры
Процедура ВыводРезультата()
Перем i;
Перем Рез;
Перем Опер;
Рез = "";
Для i = 0 По НомерОперации Цикл
Опер = Операции.Получить(i);
Рез = Рез + Число(Опер.АргументА) + " " + Опер.Операция + " " + Число(Опер.АргументБ) + " = " + Число(Опер.РезультатОперации) + "" "";
КонецЦикла;
Сообщить(Рез);
КонецПроцедуры
Функция Решение(АргументА, Операция, АргументБ, РезультатОперации, НомерЧисла)
Перем А, Б;
Перем i, j;
Перем Опер;
Если НомерОперации > -1 Тогда
Опер = Новый Структура();
Опер.Вставить("АргументА", АргументА);
Опер.Вставить("Операция", Операция);
Опер.Вставить("АргументБ", АргументБ);
Опер.Вставить("РезультатОперации", РезультатОперации);
Операции.Вставить(НомерОперации, Опер);
Если РезультатОперации = ИскомыйРезультат Тогда
Возврат Истина;
КонецЕсли;
Числа[НомерЧисла] = РезультатОперации;
КонецЕсли;
Для i = 0 По Числа.Количество() - 1 Цикл
Для j = i + 1 По Числа.Количество() - 1 Цикл
А = Числа[i];
Б = Числа[j];
Если (А <> 0) И (Б <> 0) Тогда
Числа[i] = 0;
Числа[j] = 0;
НомерОперации = НомерОперации + 1;
Если Решение(А, "+", Б, А + Б, i) Тогда
Возврат Истина;
ИначеЕсли Решение(А, "*", Б, А * Б, i) Тогда
Возврат Истина;
ИначеЕсли Решение(А, "-", Б, А - Б, i) Тогда
Возврат Истина;
ИначеЕсли Решение(Б, "-", А, Б - А, i) Тогда
Возврат Истина;
ИначеЕсли (А % Б = 0) И Решение(А, "/", Б, Цел(А / Б), i) Тогда
Возврат Истина;
ИначеЕсли (Б % А = 0) И Решение(Б, "/", А, Цел(Б / А), i) Тогда
Возврат Истина;
КонецЕсли;
Числа[i] = А;
Числа[j] = Б;
НомерОперации = НомерОперации - 1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Ложь;
КонецФункции
Процедура Главная()
ИнициализацияПеременных();
ВводДанных();
Если Решение(0, "", 0, 0, 0) Тогда
ВыводРезультата();
Иначе
Сообщить("Решение не найдено.");
КонецЕсли;
КонецПроцедуры
Главная();
-----------------------------------------------------------------------------------------
Параллельные вычисления в веб
Александр Календарев
for ($i=0; $i < 5; $i++) {
echo "**** $i\n";
$pid = pcntl_fork();
}
for ($i=0; $i < 3; $i++) {
$pid = pcntl_fork(); // вывод:
if ($pid) exit(); // pid=4337 ppid=4336 0
process($i); // pid=4338 ppid=4337 1
} // pid=4339 ppid=4338 2
function process($n){
$pp = posix_getpid();
$pp2 = posix_getppid();
echo "pid=$pp ppid=$pp2 $n\n";
}
//PHP
system( "/usr/bin/php /home/www/myproject/mysuperprogra.php 12345" );
// Python
os.system( "/usr/bin/python2 /home/www/myproject/mysuperprogra.py 12345" );
class Zk {
private $res;
private $retry = true;
protected $zk;
public function __Construct() {
$this->zk = new Zookeeper("127.0.0.1:2181");
}
public function watchCallback($event_type, $stat, $path) {
// устанавливаем обработчик на наш узел
$this->res = $this->zk->getChildren( $path , array( $this, 'watchCallback') );
// проверяем кол-во элементов списка
if ( !count( $this->res) ) {
$this->finishProcess(); // если пустой, то переходим
} // к заключительной фазе
}
public function watch($path) {
$this->res = $this->zk->getChildren( $path , array( $this, 'watchCallback') );
while($this->retry) { // организуем ожидание,
sleep(1); // пока не выполнится событие
}
}
private function finishProcess() {
$this->retry=false; // выставляем флаг
// окончания задержки
}
}
$zk = new Zk;
$zk->watch("/web/app/12345");
// ниже должен быть код подготовки и отправки данных
-----------------------------------------------------------------------------------------
Разработка математических моделей деградационных процессов лавинного типа с помощью метода наименьших квадратов
Егорова М.В.
public class Stack
{
public static ArrayList x = new ArrayList();
public static ArrayList y = new ArrayList();
public static ArrayList y1 = new ArrayList();
public static void PushX(object o)
{ x.Add(o);}
public static void PushY(object o)
{ y.Add(o); }
public static void PushY1(object o)
{ y1.Add(o); }
}
private void данныеИзБДToolStripMenuItem_Click( ↵
object sender, EventArgs e)
{
if (Class2.Connect() == 0)
{
object[] A = { "Файл не выбран" };
MessageBox.Show(String.Format(" {0}", A));
}
else
{
chart1.Series.Clear();
richTextBox1.Visible = false;
Class1 class1 = new Class1();
class1.select();
M_N_K();
dataGridView();
Chart();
}
}
private void M_N_K()
{
double a = 0; double b = 0; double x = 0;
double y = 0; double sx = 0; double sy = 0;
double S2 = 0; double S3 = 0; double T1 = 0;
double T2 = 0; double T3 = 0; double D = 0;
double Da = 0; double Db = 0;
for (int i = 0; i < Stack.x.Count; i++)
{
x = Convert.ToDouble(Stack.x[i]);
y = Convert.ToDouble(Stack.y[i]);
sx += x;
sy += y;
S2 += x * x;
S3 += x * x * x;
T1 += x * y;
T2 += (x * x) * y;
T3 += (x * x * x) * y;
}
D = T2 * T2 - T1 * T3;
Da = S2 * T2 - T1 * S3;
Db = T2 * S3 - S2 * T3;
a = Da / D;
b = Db / D;
for (int i = 0; i < Stack.x.Count; i++)
{
Stack.PushY1((Convert.ToDouble(Stack.x[i])) / (a * (Convert.ToDouble(Stack.x[i])) + b));
}
}
private void данныеИзБДToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (Class2.Connect() == 0)
{
object[] A = { "Файл не выбран" };
MessageBox.Show(String.Format(" {0}", A));
}
else
{
chart1.Series.Clear();
richTextBox1.Visible = false;
Class1 class1 = new Class1();
class1.select();
double x_Pr = Pr_S();
Chart();
dataGridView();
Chart_Pr(x_Pr);
}
}
private double Pr_S()
{
double p = 0; double q = 0; double x = 0;
double y = 0; double S2 = 0; double S3 = 0;
double T1 = 0; double T2 = 0; double T3 = 0;
double D = 0; double Dp = 0; double Dq = 0;
double Pr = 0.5; double x_Pr = 0;
for (int i = 0; i < Stack.x.Count; i++)
{
x = Convert.ToDouble(Stack.x[i]);
y = Convert.ToDouble(Stack.y[i]);
S2 += x * x;
S3 += x * x * x;
T1 += x * y;
T2 += (x * x) * y;
T3 += (x * x * x) * y;
}
D = T2 * (-T2) - (-T1) * T3;
Dp = S2 * (-T2) - (-T1) * S3;
Dq = T2 * (S3) - S2 * T3;
p = Dp / D;
Console.WriteLine(p);
q = Dq / D;
Console.WriteLine(q);
for (int i = 0; i < Stack.x.Count; i++)
{
Stack.PushY1((Convert.ToDouble(Stack.x[i])) / (p * (Convert.ToDouble(Stack.x[i])) - q));
}
x_Pr = Pr * q / (Pr * p - 1);
Console.WriteLine(x_Pr);
return x_Pr; }
-----------------------------------------------------------------------------------------