«Диглосса» и «Морфей»: герменевтика, plain text и локальные словари Михаил Быков $ du -csh src => 160K total ----------------------------------------------------------------------------------------- Применение FOSS-инструментов для анализа исходных текстов программ Алексей Пустыгин, Кирилл Кузьминых, Евгения Пустыгина ifstream file("graphFile"); unsigned int n = 0; unsigned int oriented; file >> n >> oriented; G.resize(n); while (!file.eof()) { int a, b; file >> a; file >> b; G[a].push_back(b); if(oriented == 0) { G[b].push_back(a); } } file.close(); ----------------------------------------------------------------------------------------- Открытое решение Graylog. Cбор и анализ событий в сетях промышленных масштабов Денис Силаков # yum install java-1.8.0-openjdk # yum install https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-server-4.0.5-1.el7.x86_64.rpm # yum install https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm # systemctl enable mongod elasticsearch # systemctl start mongod elasticsearch # rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.5-repository_latest.rpm # yum install graylog-server # echo -n "ваш_пароль" | sha256sum # pwgen -N 1 -s 64 # systemctl enable graylog-server # systemctl start graylog-server *.* @@адрес_сервера_graylog:514;RSYSLOG_SyslogProtocol23Format # iptables -t nat -A PREROUTING -p tcp --dport 514 -j REDIRECT --to 1514 {"error": {"severity": "critical", "message": "crash"}} # graylog-collector-sidecar -service install # systemctl start collector-sidecar # systemctl enable collector-sidecar $ "C:\Program Files\graylog\collector-sidecar\graylog-collector-sidecar.exe" -service install $ "C:\Program Files\graylog\collector-sidecar\graylog-collector-sidecar.exe" -service start ----------------------------------------------------------------------------------------- Про PowerShell и SCCM Сергей Болдин Import-Module .\ConfigurationManager.psd1 –verbose Add-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature Get-Command –Module ConfigurationManager | out-gridview help Remove-CMDevice –full Get-CMDevice | where {$_.name -like '*DUD*'} | Remove-CMDevice –Force Get-CMUSER | where {$_.name -like 'b*'} | ft name Get-ADComputer -filter * -SearchBase "OU=Computers,dc=dmk,dc=dc03,dc=corp" | Select-Object -Property Name, ipv4*, OperatingSystem $Name = Get-CMAccessAccount -PackageName "Office 2016" Set-CMAccessAccount -PackageName $Name -Type User -UserName "KKK\Andreev.dd" -Access Read –Confirm . $HDD = Get-WmiObject Win32_DiskDrive –Computername $PC | Select-Object Size function PS_Inv { Param ([Parameter(Mandatory=$False, Position=0, HelpMessage="ComputerName")][Object] $PC = $env:COMPUTERNAME) PROCESS { $OS = Get-WmiObject Win32_OperatingSystem -Computername $PC $PCProperties = Get-WmiObject Win32_ComputerSystem -ComputerName $PC $MemoryProperties = Get-WmiObject Win32_PhysicalMemory -ComputerName $PC $HDD = Get-WmiObject Win32_DiskDrive | Select-Object Size $CPU = Get-WmiObject Win32_Processor | Select-Object Name "-------------------------" "" "PC : {0}" -f $OS.csname "OS : {0}" -f $OS.Caption + $OS.CSDVersion "Mem : {0}" –f ([math]::round(($PCProperties.TotalPhysicalMemory/1024/1024),0)) "HDD : {0}" -f ($HDD.Size/1GB) "CPU : {0}" -f $CPU.Name } } Clear-Host PS_Inv $env:COMPUTERNAME Get-ADcomputer -filter * | foreach {PS_Inv -PC $_.Name} удалить 3D Builder - Get-AppxPackage -allusers *bing* | Remove-AppxPackage $Delete_Apps = @("*3DBuilder*" "*Advertising*" "*BingWeather*" "*Feedback*" "*GetStarted*" "*Maps*" "*Messaging*" "*People*" "*ZuneMusic*" "*ZuneVideo*") ForEach($app in $Delete_Apps) { Get-AppxPackage -Name $app | Remove-AppxPackage -ErrorAction SilentlyContinue } Start-Transcript -Path D:\PS_Log\log1.txt -NoClobber …Код скрипта… Stop-Transcript ----------------------------------------------------------------------------------------- Программная реализация в 1С классического метода шифрования «Решетка Кардано» Кирилл Ткаченко Перем N; Процедура Инициализация() N = 4; КонецПроцедуры Функция ИсходнаяРешетка(РешеткаТекст) Перем Решетка; Перем i, j; Решетка = Новый Массив(N, N); Для i = 0 По N - 1 Цикл Для j = 0 По N - 1 Цикл Решетка[i][j] = Сред(РешеткаТекст, i * N + j + 1, 1); КонецЦикла; КонецЦикла; Возврат Решетка; КонецФункции Процедура ВывестиРешетку(Решетка) Перем Рез; Рез = ""; Для i = 0 По N - 1 Цикл Для j = 0 По N - 1 Цикл Рез = Рез + Решетка[i][j]; КонецЦикла; Рез = Рез + "" ""; КонецЦикла; Сообщить(Рез); КонецПроцедуры Функция ПовернутьРешетку(Решетка) Перем Рез; Перем i, j; Рез = Новый Массив(N, N); Для i = 0 По N - 1 Цикл Для j = 0 По N - 1 Цикл Рез[j][N - 1 - i] = Решетка[i][j]; КонецЦикла; КонецЦикла; Возврат Рез; КонецФункции Функция Зашифровать(Решетка, СтрокаИсходная) Перем СтрокаЗашифрованная; Перем СтрокаЗашифрованнаяМассив; Перем Счетчик; Перем i, j, k; СтрокаЗашифрованная = ""; СтрокаЗашифрованнаяМассив = Новый Массив(N, N); Счетчик = 0; Для k = 1 По N Цикл Для i = 0 По N - 1 Цикл Для j = 0 По N - 1 Цикл Если Решетка[i][j] = "*" Тогда Счетчик = Счетчик + 1; СтрокаЗашифрованнаяМассив[i][j] = Сред(СтрокаИсходная, Счетчик, 1); КонецЕсли; КонецЦикла; КонецЦикла; Решетка = ПовернутьРешетку(Решетка); КонецЦикла; Для i = 0 По N - 1 Цикл Для j = 0 По N - 1 Цикл СтрокаЗашифрованная = СтрокаЗашифрованная + СтрокаЗашифрованнаяМассив[i][j]; КонецЦикла; КонецЦикла; Возврат СтрокаЗашифрованная; КонецФункции Функция Расшифровать(Решетка, СтрокаЗашифрованная) Перем СтрокаРасшифрованная; Перем i, j, k; СтрокаРасшифрованная = ""; Для k = 1 По N Цикл Для i = 0 По N - 1 Цикл Для j = 0 По N - 1 Цикл Если Решетка[i][j] = "*" Тогда СтрокаРасшифрованная = СтрокаРасшифрованная + Сред(СтрокаЗашифрованная, i * N + j + 1, 1); КонецЕсли; КонецЦикла; КонецЦикла; Решетка = ПовернутьРешетку(Решетка); КонецЦикла; Возврат СтрокаРасшифрованная; КонецФункции Процедура Главная() Перем Решетка; Перем СтрокаИсходная, СтрокаЗашифрованная, СтрокаРасшифрованная; Инициализация(); Решетка = ИсходнаяРешетка(".*..*.....*....*"); ВывестиРешетку(Решетка); СтрокаИсходная = "АБВГДЕЁЖЗИЙКЛМНО"; СтрокаЗашифрованная = Зашифровать(Решетка, СтрокаИсходная); СтрокаРасшифрованная = Расшифровать(Решетка, СтрокаЗашифрованная); Сообщить(СтрокаИсходная); Сообщить(СтрокаЗашифрованная); Сообщить(СтрокаРасшифрованная); КонецПроцедуры Главная(); ----------------------------------------------------------------------------------------- Решение головоломки «Отшельник». Высокоуровневый и низкоуровневый подход Кирилл Ткаченко (defparameter *PEG* #\x) (defparameter *HOLE* #\-) (defparameter *LINE* 12) (defparameter *LF* (string #\linefeed)) (defparameter *DIRECTIONS* (list -1 (- *LINE*) 1 *LINE*)) (defvar *board* (concatenate 'string "..........." *LF* "..........." *LF* "....xxx...." *LF* "....xxx...." *LF* "..xxxxxxx.." *LF* "..xxx-xxx.." *LF* "..xxxxxxx.." *LF* "....xxx...." *LF* "....xxx...." *LF* "..........." *LF* "..........." *LF* )) (defvar *noOfTests* 0) (defun canMove (positio direction) (incf *noOfTests*) (and (char= (elt *board* positio) *PEG*) (char= (elt *board* (+ positio direction)) *PEG*) (char= (elt *board* (+ positio direction direction)) *HOLE*))) (defun makeMove (positio direction) (setf (elt *board* positio) *HOLE*) (setf (elt *board* (+ positio direction)) *HOLE*) (setf (elt *board* (+ positio direction direction)) *PEG*)) (defun removeMove (positio direction) (setf (elt *board* positio) *PEG*) (setf (elt *board* (+ positio direction)) *PEG*) (setf (elt *board* (+ positio direction direction)) *HOLE*)) (defun solve () (let ((pegsOnBoard 0) isSolved) (dotimes (positio (length *board*)) (when (char= (elt *board* positio) *PEG*), (incf pegsOnBoard) (dolist (direction *DIRECTIONS*) (when (canMove positio direction) (makeMove positio direction) (setf isSolved (solve)) (removeMove positio direction) (when isSolved (format t "~a~%" *board*) (return-from solve 't)) )) )) (when (= pegsOnBoard 1) (format t "~a~%" *board*) t))) (defun main () (if (solve) (format t "Решение найдено.~%") (format t "Решение не найдено.~%")) (format t "Число проверок: ~d.~%" *noOfTests*)) (main) (exit) sbcl --script SamagPeg.lisp sbcl --noinform --load SamagPeg.lisp int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdLine), HWND WINAPI CreateWindowEx (dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) ----------------------------------------------------------------------------------------- Движения ступеней ракет-носителей для уменьшения зон «отчуждения» Поваляев П.П., Калёнова Н.В., Романенков А.М., Шариков Д.В. SUBROUTINE PRC(DT,S1,S2,DSJ,DSK,DSI,R1,R2,FJD,FJU,FKD,FKU, FID,FIU,L0,J0,K0,I0,J1,K1,I1) SUBROUTINE PRCINP(NSTEP,DT,R,S,S0,L0,J0,K0,I0,J1,K1,I1) SUBROUTINE PRCOUT(NSTEP,S0,DT,R,S,L0,J0,K0,I0,J1,K1,I1,SBODY,EPS) variables = "x", "y", "z" zone f=point i= 17 j= 95 k= 66 //где на месте цифр должны стоять реальные размеры вычислительной сетки Beginning (Ipr=0) or Continuation (Ipr=1) Ipr = <0> Name of Large File Nlf = Name of Small File Nsf = Heat Ratio Cappa = < 1.4 > Mach Number Me = <10.000> Angle of Attack Alf = < 30.0 > Altitude of Flight [km] Hf = < 0.0 > Number of Intervals: From Body to Shock Wave ( J0 <120 ) J0 = < 50> Along the Rotation Angle ( K0 < 60 ) K0 = < 20> Along the Body (Total) ( I0 <150 ) I0 = < 89> Smoothness Coefficient of Shock Wave Surfase Sgl = < 0.25 > Number of Steps with 1-nd Order Approximation Nst1 = < 9000000> Number of Steps with Curant Number = 0.4 Nst2 = < 300> Finish Step Number Nst3 = < 9000000> Step Interval for Saving Record Nst4 = < 2000> Body Sizes (Used for Cx, Cy, Cd, Mz Calculations Only). Middle Radius Rm = < 1.8> Number of Steps with start Oscillate NKOL = < 2000> variables = "x", "y", "z" zone f=point i= 17 j=95 k= 66 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 -5.440973910234275E-002 0.000000000000000E+000 0.000000000000000E+000 -1.088194784046708E-001 0.000000000000000E+000 0.000000000000000E+000 -1.632292171070402E-001 0.000000000000000E+000 0.000000000000000E+000 -2.176389578092738E-001 0.000000000000000E+000 0.000000000000000E+000 -2.720486965116438E-001 0.000000000000000E+000 0.000000000000000E+000 -3.264584352140122E-001 0.000000000000000E+000 0.000000000000000E+000 -3.808681739163815E-001 0.000000000000000E+000 0.000000000000000E+000 -4.352779136186835E-001 0.000000000000000E+000 0.000000000000000E+000 -4.896876513211203E-001 0.000000000000000E+000 0.000000000000000E+000 -5.440973910234220E-001 0.000000000000000E+000 0.000000000000000E+000 -5.985071297257913E-001 0.000000000000000E+000 0.000000000000000E+000 -6.529168684281610E-001 0.000000000000000E+000 0.000000000000000E+000 -7.073266081304622E-001 0.000000000000000E+000 0.000000000000000E+000 VARIABLES = "X", "Y", "Ro", "P" "M" ZONE F = POINT, I= 51 J= 179 9,08E+00 -8,62E+00 2,14E-02 1,15E+02 2,34E-01 9,07E+00 -8,63E+00 2,15E-02 1,15E+02 2,76E-01 9,06E+00 -8,66E+00 2,17E-02 1,15E+02 3,50E-01 9,05E+00 -8,67E+00 2,17E-02 1,15E+02 3,77E-01 9,03E+00 -8,68E+00 2,17E-02 1,14E+02 4,03E-01 9,01E+00 -8,72E+00 2,17E-02 1,13E+02 4,56E-01 8,99E+00 -8,74E+00 2,16E-02 1,12E+02 4,83E-01 8,98E+00 -8,76E+00 2,15E-02 1,11E+02 5,09E-01 8,96E+00 -8,78E+00 2,15E-02 1,11E+02 5,28E-01 -----------------------------------------------------------------------------------------