Entry tags:
Скриптование
Вот наездники пигнвинов с чертями говорят, что главное - это возможность все автоматизировать своими руками. А я какой-то такой ленивый и люблю, чтобы за меня кто-то все сделал. Какбэ даже когда основной системой был Arch Linux и графическое окружение, собраное кустарным способом (Openbox, PyPanel там), все равно не тянуло что-то там скриптовать. Можно демона в rc.conf или там в автостарт Openbox'а что-то прописать, чтобы ручками не кликать. Но что-то большее? Мне всегда казалось, что проще каждый раз руками сделать, чем лезть и разбираться. Я, дубина, баш не знаю. Пробовал питон для написания скриптов - неприятно, все как-то ненативно и наискосок. Так и не писал.
Еще мне тут говорят, что F# это как Python только под ШИНДОУС. Питона вод винду какбэ нету, да? Обязательно надо найти язычек именно от Майкрософта и сказать, что вот альтератива. Ну конечно, именно как эльтернативу питону некий Дон Сайм эфшапрец задумывал. Надо в твиттор его оповестить, а то небось запамятовал истиных целей и отклонился от курса. Вот мне нравился в свое время питон. Очень хорошо было на нем всякие тензоры считать, сайты писать на джанге, твит-ботов каких-нибудь и, конечно же, УМНОЖАТЬ СТРОКУ НА ЧИСЛО. А потом пришло понимание какой-то хлипокости получаемых конструкций. Я ничего не говорю, какбэ не специалист, но мне жалко людей клепающих GUI на питоне. Есть же народная примета, что если гафическое приложение лагает, жрет сотни памяти и постоянно вылетает со всякиеи стэктрэйсами, то оно написано на питонес вероятностью 98%. Или вот с асинхронными системами что? Но это все так. Я просто криворукий, потому всегда боюсь, что где-то опечатался и просто написал фигню. Типизация, даже такая слабенькая как в C# успокаивает, дает надежду на стабильное будущее.
А это я к чему? Да решил вот проверить возможности F# для скриптописательтва. Ну REPL есть, для скрипта даже классы расписывать необязательно, вот решил попробовать написать скприт, который при подключении к рабочей VPN будет прописывать маршрут до моего рабочего ПК. Я какбы не даю выпоэночке вбрасывать мне маршруты. Весь трафик через VPN пускать не надо, тем более, что он все равно никуда дальше корпоративной подсети не уйдет.
Вот не знаю. Я скриптецы раз в 100 лет пишу, никак не могу понять, говно ли это? И как такое вообще сделать на питоне? Наверное же можно сделать, просто я экосистему дотнетов гораздо лучше знаю, потому догадывался, что смогу сделать за примелемое время. Время и впрям примелмое (ну минут 20 потратил), но результат как-то ниже моих ожиданий. Вроде F# краток и лаконичен, а тут такого наворотил. Либо эфшарп не торт, либо я криворук, либо же дело как раз в ШИНДОВС инфраструктуре, за которую всякие там любят ее материть. Еще я про PowerShell думал, да я его тоже не знаю. А стоит ли его учить, кто знает? Пригодится где?
PS: Забыл сказать, что при обычном запуске на Win7 оно ругается, что недостаточно прав доступа. Это нормально, ничего криминального. Но вот в дотнете, я например могу сделать:
а) чтобы оно само запрашивало права администратора
б) чтобы имея сохраненные данные админской учтеки (ОЛОЛО БЕЗОПАСТНОСТЬ) запускалось от админа.
Питон или руби какие так могут?
Еще мне тут говорят, что F# это как Python только под ШИНДОУС. Питона вод винду какбэ нету, да? Обязательно надо найти язычек именно от Майкрософта и сказать, что вот альтератива. Ну конечно, именно как эльтернативу питону некий Дон Сайм эфшапрец задумывал. Надо в твиттор его оповестить, а то небось запамятовал истиных целей и отклонился от курса. Вот мне нравился в свое время питон. Очень хорошо было на нем всякие тензоры считать, сайты писать на джанге, твит-ботов каких-нибудь и, конечно же, УМНОЖАТЬ СТРОКУ НА ЧИСЛО. А потом пришло понимание какой-то хлипокости получаемых конструкций. Я ничего не говорю, какбэ не специалист, но мне жалко людей клепающих GUI на питоне. Есть же народная примета, что если гафическое приложение лагает, жрет сотни памяти и постоянно вылетает со всякиеи стэктрэйсами, то оно написано на питонес вероятностью 98%. Или вот с асинхронными системами что? Но это все так. Я просто криворукий, потому всегда боюсь, что где-то опечатался и просто написал фигню. Типизация, даже такая слабенькая как в C# успокаивает, дает надежду на стабильное будущее.
А это я к чему? Да решил вот проверить возможности F# для скриптописательтва. Ну REPL есть, для скрипта даже классы расписывать необязательно, вот решил попробовать написать скприт, который при подключении к рабочей VPN будет прописывать маршрут до моего рабочего ПК. Я какбы не даю выпоэночке вбрасывать мне маршруты. Весь трафик через VPN пускать не надо, тем более, что он все равно никуда дальше корпоративной подсети не уйдет.
- open System
- open System.Diagnostics
- open System.Net.NetworkInformation
- let intName = "tbc"
- let pcIp = "192.168.11.141"
- let mask = "255.255.255.255"
- printfn "Trying find default gateway to %s" pcIp
- let int = NetworkInterface.GetAllNetworkInterfaces() |> Seq.find(fun i -> i.Name = intName)
- let gatewayIp = (int.GetIPProperties().UnicastAddresses |> Seq.head).Address
- printfn "Default gateway is %A" gatewayIp
- let buidProc file args =
- let p = new Process()
- p.StartInfo.UseShellExecute <- false;
- p.StartInfo.RedirectStandardError <- true;
- p.StartInfo.FileName <- file
- p.StartInfo.Arguments <- args
- p
- let removeRoute = buidProc "route" <| sprintf "delete %s" pcIp
- let insertRoute = buidProc "route" <| String.Format("-p add {0} mask {1} {2}", pcIp, mask, gatewayIp)
- printfn "Trying remove route to %s" pcIp
- removeRoute.Start() |> ignore
- removeRoute.WaitForExit()
- printfn "Trying add route to %s" pcIp
- insertRoute.Start() |> ignore
- Console.ReadKey() |> ignore
Вот не знаю. Я скриптецы раз в 100 лет пишу, никак не могу понять, говно ли это? И как такое вообще сделать на питоне? Наверное же можно сделать, просто я экосистему дотнетов гораздо лучше знаю, потому догадывался, что смогу сделать за примелемое время. Время и впрям примелмое (ну минут 20 потратил), но результат как-то ниже моих ожиданий. Вроде F# краток и лаконичен, а тут такого наворотил. Либо эфшарп не торт, либо я криворук, либо же дело как раз в ШИНДОВС инфраструктуре, за которую всякие там любят ее материть. Еще я про PowerShell думал, да я его тоже не знаю. А стоит ли его учить, кто знает? Пригодится где?
PS: Забыл сказать, что при обычном запуске на Win7 оно ругается, что недостаточно прав доступа. Это нормально, ничего криминального. Но вот в дотнете, я например могу сделать:
а) чтобы оно само запрашивало права администратора
б) чтобы имея сохраненные данные админской учтеки (ОЛОЛО БЕЗОПАСТНОСТЬ) запускалось от админа.
Питон или руби какие так могут?
no subject
no subject
no subject
б) Синтаксис повершелла видел?
в) Баш мне на винде запустил!!!!1111
г) Заимплементируй аналог данного скрипта под любую ОС на баше или сильном аде.
no subject
А в руби можно квоту на число умножать, кстати, это совершенно иной уровень ёбы.
no subject
no subject
no subject
Я сначало кинулся писать на павершеле и быстро откинулся, так как слишком непривычно. Хотя там должно быть короче.