Skip to content

Instantly share code, notes, and snippets.

View DmitriyVlasov's full-sized avatar

Dima Vlasov DmitriyVlasov

View GitHub Profile
@DmitriyVlasov
DmitriyVlasov / ExampleExportCsv.ps1
Created August 18, 2015 07:08
Корректный экспорт данных в CSV русскоязычных букв.
# Выгружает в формате csv без вставки в заголовок файла описание типа, в кодировке Юникод.
export-csv -Path C:\temp\export.csv -Delimiter ';' -NoTypeInformation -Encoding Unicode
@DmitriyVlasov
DmitriyVlasov / UpdatePowerShellHelpOverProxy.ps1
Created August 6, 2015 17:07
Обновление справки Powershell через прокси сервер
$webclient = New-Object System.Net.WebClient
$creds = Get-Credential
$webclient.Proxy.Credentials = $creds
Update-Help -Credential $creds
#r "System.DirectoryServices.AccountManagement.dll"
open System.DirectoryServices.AccountManagement
let testSearch fullName =
let ctx = new PrincipalContext(ContextType.Domain)
let u = new UserPrincipal(ctx)
u.Surname <- fullName
use ps = new PrincipalSearcher(u)
ps.FindAll()
|> Seq.cast<System.DirectoryServices.AccountManagement.UserPrincipal>
@DmitriyVlasov
DmitriyVlasov / sample-regex-provider.fsx
Last active August 29, 2015 14:24
Примеры использования FSharp.Text.RegexProvider
(** # Примеры использования FSharp.Text.RegexProvider*)
(** ## Проверка ссылок на F#*)
(** Следующий скрипт выводит информацию о ссылках в html-коде, хранящемся в переменной html.
Скрипт портирован из примера в книге Д. Фридл, Регулярные выражения стр. 257 *)
open System.Text.RegularExpressions
open FSharp.Text.RegexProvider
[<Literal>]
let aTagPattern =
@DmitriyVlasov
DmitriyVlasov / EventLogExample.fs
Last active August 29, 2015 14:22
Пример работы с логом событий на F#
open System.Diagnostics
let sizeEventLog (el : EventLog) =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey( @"System\CurrentControlSet\Services\EventLog\" + el.Log )
|> Option.ofNull
|> Option.bind ( fun registryKey -> registryKey.GetValue("FIle") |> Some )
|> Option.bind Option.ofNull
|> Option.bind ( fun x -> x.ToString() |> Some )
|> Option.bind ( fun filePath -> new FileInfo(filePath) |> Some )
|> Option.bind ( fun fi -> fi.Name |> Some )
@DmitriyVlasov
DmitriyVlasov / The next ten Fridays 13.fs
Last active August 29, 2015 14:16
The next ten Fridays 13
let ``Next N Friday 13`` n =
Seq.initInfinite (fun i -> i |> float |> System.DateTime.Now.AddDays)
|> Seq.filter (fun date -> date.Day = 13 && date.DayOfWeek = System.DayOfWeek.Friday)
|> Seq.map (fun date -> date.ToShortDateString())
|> Seq.take n
|> Seq.toList
// Output:
// val ( Next N Friday 13 ) : n:int -> string list
// val it : string list =