Pull to refresh

Чудеса автоматизации или как отправляют SMS настоящие гики

Lifehacks for geeks
Мой коллега по работе — большой любитель автоматизации рутинных задач скриптами. Эта склонность порой принимает удивительные формы. Однажды ему надоело каждый раз вводить проверочный код при отправке SMS через сайт оператора. И вот что он придумал.

Пишется простенькое приложение с диалоговым окном и двумя полями ввода — номер телефона и текст сообщения. При желании добавляется список операторов связи и любимые номера. По нажатию кнопки «Отправить» происходит следующее (все делает VBScript):
Читать дальше →
Total votes 107: ↑90 and ↓17 +73
Views 822
Comments 144

Про гиков и автоматизацию — продолжение

Lifehacks for geeks
По просьбе своего коллеги AlexDAY — героя предыдущего поста, публикую его разъяснения. Сам он пока не может (только что отправил ему инвайт, и кармы у него не хватит написать сюда).

Здравствуйте уважаемые члены сообщества! Почти случайно мне попалась эта ссылка на статью и в главном герое (о-чудо!!) я узнал себя. Я как раз тот самый — безумный, гик, извращенец, мужик, инжИнер, индус :)

Разрешите мне поведать вам предысторию создания этой «системы оповещения». Движущей силой создания ее была только от части лень, а основной — конечно же обычная человеческая жадность.
Читать дальше →
Total votes 36: ↑27 and ↓9 +18
Views 478
Comments 15

Создание event c SMS уведомлением в Google Calendar с использованием XMLHTTP и запуск скрипта из Outlook

Lumber room

Создание event:


1. Для начала необходимо настроить ваш Google Calendar — вот здесь описано как это сделать

2. Сохранить VBScript код в vbs-файле (например, google_sms.vbs).

3. Строка запуска:
cscript.exe google_sms.vbs «Google account name» «Google account pass» «Path to text file»

Интеграция в Outlook:


1. Открыть «Tools»-«Macro»-«Visual Basic Editor», выбрать ThisOutlookSession в проекте VbaProject.OTM. Вставить SendNotificationSMS функцию. Необходимо указать: User, Password, Путь к скрипту.

Желательно «подписать» скрипт (в Visual Basic Editor «Tools»-«Digital Signature...»)

2. Создать правило «Tools»-«Rules and Alerts…» и выбрать «run a script» действие. Выбрать функцию SendNotificationSMS.

3.Outlook 2007. Открыть «Tools»-«Macro»-«Security…». Установить “Warning for all macros”. Перезапустить Outlook. Если появится окошко с «Enable Disable macros» то сделать Enable (обычно появляется при первом срабатывании правила или открытии «Tools»-«Macro»-«Visual Basic Editor»)

4. Проверить что все работает – отправив например самому себе e-mail, правило на которое должно вызывать .

код
Total votes 11: ↑9 and ↓2 +7
Views 636
Comments 5

VBscript в помощь 1С-программисту

Lumber room
Недавно получил ТЗ на разработку несложного отчета с выводом результатов в файлы. Ничего необычного, кроме нескольких пунктов:
  1. Результат работы отчета должен будет отсылаться по расписанию специальной утилитой от стороннего разработчика
  2. Все должно работать в полностью автоматическом режиме
  3. Изменения в конфигурацию вносить нельзя

Если бы не пункт 3, то наверняка реализовал бы довольно распространенным способом: включил отчет в конфигурацию, в модуль приложения добавил выполнение отчета при входе специального пользователя с определенным именем. Соответственно, перед запуском сторонней утилиты настроил бы запуск 1С из командной строки под учетной записью этого специального пользователя. Но…
Читать дальше →
Total votes 5: ↑3 and ↓2 +1
Views 3.9K
Comments 2

Добавление возможности скриптинга своим приложениям с помощью Active scripting

Website development *
Последнее время я заметил некоторый интерес хабралюдей к такой теме как скриптинг. Были статьи про Lua, про V8 (JavaScript движок Google Chrome). Я же хотел бы рассказать об использовании технологии Active Scripting (она же ActiveX Scripting) от Microsoft.
Это технология, используемая для реализации поддержки скриптов в приложениях. Именно так работает движок JavaScript всеми любимого браузера IE ;) Однако, не спешите с выводами. Да, тот же движок V8 работает в разы быстрее, но и у данной технологии есть свои преимущества и возможные области применения, о которых я тоже расскажу.
Читать дальше...
Total votes 25: ↑16 and ↓9 +7
Views 4K
Comments 8

Накрутка одного опроса

Lumber room
imageОднажды я зашел на сайт Радио Рок 95.2 FM и увидел там голосование. В результате его голосования родился just4fun-VB-скрипт (ничего другого не нашлось под рукой), который накручивает на нужное количество голосов нужный вариант.
Читать дальше →
Total votes 37: ↑16 and ↓21 -5
Views 382
Comments 7

Форматирование даты по RFC-2822 для RSS в ASP-vbscript

Lumber room
Настоящий текст не является призывом к использованию javascript, vb (чур меня), IIS, RSS, HTTP, TCP, IP и других нерусских слов, а описывает частное решение частной проблемы.

Довелось на днях привинчивать RSS для Яндекс-новостей к сайту на ASP (vbscript). Все, в общем-то, было просто, но нежданно-негаданно запнулся на ровном месте — форматировании даты. Дата (pubDate) должна быть в формате RFC-2822, причем в требованиях Яндекса указано, что время должно быть не UTC, а с правильным часовым поясом, соответствующим размещению ресурса. Например: Fri, 25 Dec 2009 09:24:44 -0300. Известное дело, vbscript сам c датой работать толком не умеет: знает полтора ущербных формата, да и те норовит по своей прихоти испохабить локализацией (сам был свидетелем случаев, когда при логине пользователя в консоль сервера IIS+ASP+vbscript хватал локаль зашедшего юзера, менял формат даты и всего остального, после чего приложение с грохотом валилось). Надо было сформатировать дату, не пользуясь медвежьими услугами барсика, и я пошел в Инет в рассуждении быстро нарыть подходящий код, а потом перейти к содержательной работе.
Щас!
Читать дальше →
Total votes 6: ↑1 and ↓5 -4
Views 1.3K
Comments 4

Опытные мелочи Windows-админа

System administration *
Всегда имел желание написать цикл постов, где был бы понемногу изложены разные интересные мелочи и задачи, которые приходилось решать в повседневной рутине системного администратора.
Возможно, кое-что из описанного будет полезно другим сисадминам.

Сразу оговорюсь, что в качестве исходных данных имею Windows среду и домен Active Directory, причем ОС преимущественно WindowsXP — Server2003. Ну и обслуживаемые компании были в основном некрупными (от 30 до 500 пользователей).

Начнем, пожалуй, c часто встречаемой задачи определения кто из пользователей за каким компьютером работает.
Читать дальше →
Total votes 105: ↑95 and ↓10 +85
Views 168K
Comments 55

Программно убираем поля и колонтитулы в браузере Firefox под Windows

Browsers
Sandbox

Зачем это нужно?


В нашей компании используется веб-приложение, одной из возможностей которого является печать заполненных форм. Начальство очень бесится, когда им приносят документы с колонтитулами браузера. Виноватым при этом делают веб-программиста — он же отвечает за веб-приложение.
Системные администраторы в курсе этого дела. Но зоопарк браузеров представлен несколькими видами особей. Хоть при установке их и убираются колонтитулы и поля, но зло не дремлет и черная магия делает свое дело — документы печатаются с колонтитулами и приходится снова убирать вручную. «До коль?» — спрашивает наш Отдел ИТ начальство.

Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Views 6.8K
Comments 7

Художественные обои + погодный информер

Lumber room
Sandbox

История


Мне всегда было интересно знать какая погода за окном, тем временем использовались разные погодные информеры и вот однажды по совету знакомого я набрел на данный сайт. У сайта была своя изюминка, которая заключалась в том, что сводка погоды выводилась на фоне художественных картин, которые хочу заметить приличного качества. Все эти прелести не оставили меня равнодушным и я добавил сайт в закладки. Время шло, из закладок сайт перекочевал в превьюшку для вкладок (speed dial), которая с периодичностью обновлялась, но всё равно чего-то не хватало. И, в конце концов, мне пришла идея — делать скриншоты сайта и выводить их обоями на рабочий стол.

Цель


Реализовать идею, затратив при этом как можно меньше «ресурсов» на реализацию и сделать так чтобы процесс от создания скриншота до замены обоев происходил незаметно.
Читать дальше →
Total votes 10: ↑4 and ↓6 -2
Views 729
Comments 6

UTF-8: Кодирование и декодирование

Programming *
Sandbox
Причиной разобраться в том, как же работает UTF-8 и что такое Юникод заставил тот факт, что VBScript не имеет встроенных функций работы с UTF-8. А так как ничего рабочего не нашел, то пришлось писть/дописывать самому. Опыт на мой взгляд полезный в любом случае. Для лучшего понимания начну с теории.

О Юникоде


До появления Юникода широко использовались 8-битные кодировки, главные минусы которых очевидны:
Читать дальше →
Total votes 47: ↑37 and ↓10 +27
Views 186K
Comments 25

Инвентаризация малой кровью

Development for Windows *
Sandbox
Однажды потребовалось провести «инвентаризацию», то есть узнать за каким компьютером, какой пользователь сидит.

Вариант пройти по рабочим местам посмотреть, поспрашивать, был отброшен, как еретический.
Так как все пользователи заведены в Службе каталогов Active Directory, так же, как и рабочие места, родилась идея выдрать всю необходимую информацию из AD. Можно, конечно было обратиться к администратору домена и спросить все данные у него, но мы не ищем легких путей.
Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views 2.5K
Comments 11

Компиляция программного проекта на Fortran

Website development *Fortran *
Sandbox
Всем известны плюсы ночной сборки и тестирования: утром мы знаем всю информацию о проекте:
собрался ли проект, сколько тестов прошли, имеем собранный экзешник, который можно предъявить заказчику.

Одной из самых больших проблем наладки процесса автоматической сборки и тестирования проекта на фортране является построение исполнимого файла в неинтерактивном режиме, в первую очередь в режиме командной строки.

Напомним, что файлы в фортрановском проекте зависят друг от друга через модули. Если в одном файле есть module A, а в другом — use A, то первый файл должен быть скомпилирован раньше. При этом подобная информация нигде не прописывается и генерируется на лету. Интеграция компилятора Intel Fortran с Visual Studio в большинстве случаев правильно определяет последовательность компиляции, однако и она может ошибиться, что уж говорить о специальных утилитах, нацеленных на создание make-файлов.

Ниже приводится метод определения зависимостей в файлах проекта и описание процесса автоматической сборки проекта без использования специальных программ.
Читать дальше →
Total votes 13: ↑9 and ↓4 +5
Views 5K
Comments 2

Собираем документацию ProGit, под Windows

Git *
Sandbox

Предисловие


Добрый день.

Вот уж, около полгода, наша компания перешла с системы контроля версий SVN на Git. О преимуществах или недостатках я писать не буду, их обсудили не раз. Ребята, которые этим занимались в нашей команде, написали несколько внутренних статей с основными сценариями: создание бранчей, мерджи и т.п.
Но жизнь преподносит свои сюрпризы и выход за основные сценарии всегда обозначался фразой WTF или говоря по русски «я думал Git сделает так, почему он сделал по другому?»

И всё сводилось к тому, что нужно читать документацию по Гиту. (А на чтение документации, всегда нет времени.)
По этому поводу была статья Завершён перевод книги «Pro Git» на хабре.
Но как оказалось, в документацию ещё вносятся изменения. Не часто, но всё же, тут хорошо видно, когда вносились последние.

И возникла идея слепить последний вариант доки…
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Views 5.5K
Comments 8

Аудит пользователей в AD через VBS с занесением в SharePoint при помощи PowerShell

System Programming *
Sandbox
Добрый день наблюдатели НЛО

Хотел описать, как собирал информацию о пользователях из AD и затем размещал информацию на SharePoint для удобочитаемости и в любой момент посмотреть о том, или ином пользователе нужную для нас информацию.
Опишу просто, так как всё оно было…
Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Views 9.4K
Comments 8

Easy-программирование танка-шпиона

Programming *
Tutorial

Хочу рассказать Вам, как можно управлять айГаджетами с PC, да еще и программировать их. Все, что описано в статье применимо как к Brookstone Rover Spy Tank, так и к AR Drone Parrot. На «Хабре» уже ни раз были статьи о серии высокотехнологичных гаджетов AR Drone Parrot. Как-то мало интереса проявляется Brokstone Rover Spy Tank, хотя, как ни странно, эта игрушка хоть и не такая эффектная, в силу того, что не летает, зато более практичная. Во первых заряда 6 элементов пиатния серии АА хватает на несколько часов непрерывной работы. Во вторых, его можно использовать как гиковскую веб-камеру, с помощью которой можно следить за тем, что происходит дома с любого другого компьютера, ну и, как бонус, гонять своих домашних животных. Настроив доступ по RDP к домашнему компьютеру, можно управлять этим изделием, как мобильной веб-камерой, которая не просто показывает картинку, но еще и передвигается по помещению.
Читать дальше →
Total votes 21: ↑16 and ↓5 +11
Views 33K
Comments 16

Сохранение документов Excel в PDF на сервере

Website development *Programming *System Programming *
Sandbox
Не так давно появилась задача создать простой сервис по созданию PDF отчетов на основе офисных документов для интранета. И вроде бы все просто, но вот с сохранением Excel в PDF возникли проблемы. Интересно? Прошу под кат.

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 14K
Comments 6

«Многопоточность» WSH VBScript

Abnormal programming *
Sandbox

Костыль


Доброго всем времени суток. Предлагаю костыль, реализующий механизм многопоточности (а точнее «многопроцессности») для WSH VBScript. Не рекомендуется лицам с аллергией на индокод.
Первая мысль о потенциальных удобствах многопоточности пришла однажды во время решения на добровольных началах относительно несложной задачи по обработке и визуализации информации. И, поскольку установка IDE навроде Visual Studio и наш Helpdesk — понятия несовместимые, из «легальных» оставались только VBA и WSH. В то время был выбран последний. А действующие административные ограничения и желание получить дружественные методы продиктовали требования к данной реализации многопроцессности:
  • Код расположен в одном файле, как обычный сценарий.
  • Использует минимум ActiveX, и только встроенных, работоспособен без WMI, под WSH x86/x64.
  • Достаточная функциональность и удобство важнее быстродействия и паттернов.

Особенности:
  • Запущенный скрипт выполняет служебную функцию. Основной код выполняется в последующих процессах.
  • В «полной версии» основной код размещается только в классах, экземпляр любого из которых можно создать в отдельном процессе. В каждом новом процессе скрипт создает экземпляр служебного класса, который создает экземпляр указанного целевого класса, вызывает целевой метод, контролирует его ход, создает в глобальном контексте скриптов переменные, ссылающиеся на созданные экземпляры классов. В предшествующий скрипт возвращается объект инициализированного целевого класса, и «обрабатываются» события инициализации и завершения целевого класса запущенного скрипта.
  • В «легкой версии» логика аналогична, только основной код размещается внутри sub’ов, предшествующему скрипту возвращается не объект, а индекс запущенного, и нет обработки событий.
  • Для создания нового процесса скрипт рекурсивно запускает самого себя, передав данные о вызываемом методе и идентифицирующую информацию в именованном аргументе.
  • Единого пространства исполнения нет, каждый скрипт хранит свои данные и объекты в своем контексте. Для обмена данными объект Me первого скрипта передается в последующие с применением GlobalContainer, описанным в теме «обмен данными и объектами между скриптами — 2» на Сером форуме. Каждый скрипт после завершения целевого метода ожидает разрешения на завершение, такая задержка позволяет забрать из него полученную информацию.
  • Функционирует одинаково в WSH WScript и CScript, и в виде скомпилированного в ScriptCryptor exe-файла (правда, в exe не работают методы class_terminate).
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 9.5K
Comments 2

Упрощаем жизнь администратору, ассоциируем имя пользователя и имя компьютера в автоматическом режиме в каталоге AD

Algorithms *
Recovery mode
Добрый день, хабр!
Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя. То есть мы знаем имя сотрудника, но какой у него компьютер, без понятия. И, зачастую, попытка заставить пользователя определить имя компьютера вызывает мучение. Они вместо этого называют имя пользователя, mail, номер телефона, все что угодно, только не имя компьютера. А попытка объяснить пользователю где находится информация о системе вызывает баттхерт сотрудника и лютую ненависть. Можно, конечно, было бы написать какую-нибудь утилитку, позволяющая отображать имя компьютера на рабочем столе или где-нибудь еще на видном месте, но для этого надо каждый раз объяснять где находится эта информация. Немного упрощает задачу, но не решает ее полностью. Тем более что я склоняюсь к тому, что пользователю и во все положено не знать имя компьютера, на котором он сидит. В результате было решено сделать определение имени компьютера современным, удобным, правильным и, главное, автоматическим.

image
Примерно так может выглядеть подключение к компьютеру. При чем оснастку даже не обязательно открывать с помощью административной учетной записи. Для тех, кому интересно как все это работает и как это сделать в вашей инфраструктуре, добро пожаловать под кат.
Для выполнения описанного, вы должны понимать что такое AD, понимать хотя бы примерно структуру объектов в AD, понимать работу скриптов, а также любить котиков.
Читать дальше →
Total votes 36: ↑28 and ↓8 +20
Views 142K
Comments 48

Лучше день потерять, а потом телепортироваться куда хочешь и сколько хочешь

Algorithms *
Sandbox
Вы используете в своей работе SecureCRT? Вам много раз в день приходится заходить на различное оборудование в одном или нескольких пространствах ip адресов, отличающихся лишь одним-двумя конечными октетами и выполнять на них типовые задачи? Логин-пароль для входа на оборудование в вашей сети представлен одной-двумя комбинациями? Вы много думали над тем, как сделать так, чтобы все это делалось само, но боялись спросить? Или просто хотите вкратце узнать что в принципе можно сделать скриптом на SecureCRT? И так, SecureCRT + VBScript или «творчество в рутине». Добро пожаловать под кат.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Views 22K
Comments 15
1