А я, кажется, нашел применение для себя. Правда оно уже никак не касается удаленного управления — возможность сменить оператора и ничего не пропустить. :)
Все входящие SMS пересылать на новый номер (с пометкой от кого), входящие звонки отбивать и слать SMS-ку о том, что был звонок с такого-то номера.
При заполнении анкеты не нашел где указать желаемый язык для изучения. Или у Вас репетитор не сможет сам искать тех, кому предложить свои услуги? Если так, тогда мне надо будет постоянно заходить на сайт и проверять не появился ли репетитор в моем городе? Сделайте хотя бы возможность получения уведомлений об интересующих меня предложениях. А то ведь я зарегистрируюсь, не найду подходящего предложения и забуду…
По своему опыту скажу, что пакет для установки это способ избавить пользователя от таких действий как:
— создание ярлыков в меню пуск, на рабочем столе, в панели быстрого запуска
— установка (удаление) системных служб
— проверка окружения, регистрация компонентов в системе
— создание (удаление) ключей реестра
— удаление всего, что программа насоздавала в процессе своей работы
При желании список можно продолжить.
Другое дело, что если возможно, то надо дать пользователю возможность работать и с портативной версией, не требующей установки.
BANK_BRANCHES — таблица отделений, у каждого отделения есть координаты Lng и Lat
lat, lng — координаты точки на Google Map
maxDist — максимальная дистанция от заданной точки, в километрах
начальные преобразования:
double DE2RA = 0.01745329252;
lat *= DE2RA;
lng *= DE2RA;
Запрос:
SELECT BANK_BRANCHES.*, 6371.0 * ATAN(Sqrt( 1 — (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) * (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) ) / (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng))) AS distance FROM BANK_BRANCHES WHERE Lat IS NOT Null AND Lng IS NOT Null AND 6371.0 * ATAN(Sqrt( 1 — (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) * (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) ) / (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng))) <= @maxDist
В данном случае Visual Studio используется всего лишь как оболочка.
Создавать дистрибутивы с помощью WiX можно и, например, с помощью SharpDeveloper. Он, кстати, дает немного больше визуальности. Например, на стадии создания проекта можно выбрать набор UI. В нем есть встроенный редактор диалогов (в отличие от Visual Studio).
На Google Map API реализовал в одном проекте поиск ближайших отделений банка (расстояние можно выбрать) от указанной точки на карте. Ищется одним запросом к БД. Если кому интересно могу дать ссылку на потестить и SQL запрос на поюзать.
Можно создать ящиков, засветить их на паре тройке сайтов и ждать приходящую корреспонденцию. Все, что будет туда попадать, в том числе аттачменты — анализировать и отдавать с апдейтами антивирусных баз в виде контрольных сум, сигнатур.
Для пущей надежности сделать ящикам либо нечитабельные имена, либо имена вида lovishkadlaspama@mail.ru или lovushkadlatarakanov@mail.ru
Все входящие SMS пересылать на новый номер (с пометкой от кого), входящие звонки отбивать и слать SMS-ку о том, что был звонок с такого-то номера.
При заполнении анкеты не нашел где указать желаемый язык для изучения. Или у Вас репетитор не сможет сам искать тех, кому предложить свои услуги? Если так, тогда мне надо будет постоянно заходить на сайт и проверять не появился ли репетитор в моем городе? Сделайте хотя бы возможность получения уведомлений об интересующих меня предложениях. А то ведь я зарегистрируюсь, не найду подходящего предложения и забуду…
— создание ярлыков в меню пуск, на рабочем столе, в панели быстрого запуска
— установка (удаление) системных служб
— проверка окружения, регистрация компонентов в системе
— создание (удаление) ключей реестра
— удаление всего, что программа насоздавала в процессе своей работы
При желании список можно продолжить.
Другое дело, что если возможно, то надо дать пользователю возможность работать и с портативной версией, не требующей установки.
SMSRC.exe -send XXXXXXXXXXX «from cmd line!»
Есть ограничения, добавил информацию в конце статьи.
BANK_BRANCHES — таблица отделений, у каждого отделения есть координаты Lng и Lat
lat, lng — координаты точки на Google Map
maxDist — максимальная дистанция от заданной точки, в километрах
начальные преобразования:
double DE2RA = 0.01745329252;
lat *= DE2RA;
lng *= DE2RA;
Запрос:
SELECT BANK_BRANCHES.*, 6371.0 * ATAN(Sqrt( 1 — (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) * (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) ) / (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng))) AS distance FROM BANK_BRANCHES WHERE Lat IS NOT Null AND Lng IS NOT Null AND 6371.0 * ATAN(Sqrt( 1 — (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) * (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng)) ) / (Sin(" + lat + ") * Sin(0.01745329252 * Lat) + Cos(" + lat + ") * Cos(0.01745329252 * Lat) * Cos(" + lng + " — 0.01745329252 * Lng))) <= @maxDist
Реализация здесь:
informatron.ru/Banks/Map.aspx
Двойной клик на карте покажет отделения в указанном радиусе
Есть еще железный вариант с подобной штукой Управляет питанием, сам управляется по SNMP
Создавать дистрибутивы с помощью WiX можно и, например, с помощью SharpDeveloper. Он, кстати, дает немного больше визуальности. Например, на стадии создания проекта можно выбрать набор UI. В нем есть встроенный редактор диалогов (в отличие от Visual Studio).
Можно создать ящиков, засветить их на паре тройке сайтов и ждать приходящую корреспонденцию. Все, что будет туда попадать, в том числе аттачменты — анализировать и отдавать с апдейтами антивирусных баз в виде контрольных сум, сигнатур.
Для пущей надежности сделать ящикам либо нечитабельные имена, либо имена вида lovishkadlaspama@mail.ru или lovushkadlatarakanov@mail.ru