Статус присутствия 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; } -----------------------------------------------------------------------------------------