пятница, 19 февраля 2010 г.
Собирался уже идти спать, но пришла мысль по поводу хранения настроек и регистрационных данных программы, вернулся записать чтоб не забыть. Лично мне хотелось бы хранить в настройках программы и регистрационную информацию и время последнего запуска и количество запусков для триала и вообще для статистики. Но в открытом виде хранить это как-то не очень красиво, любой школьнег подправит что ему надо и усё... Поэтому надо бы шифроваться. Как вариант - бинарный формат, но с ним не очень удобно работать из программы и совместимость версий будет проблемой если делать на основе обычной структуры данных. Удобно работать с INI или с XML и с версиями у них проблем нет, но они легко читаются и могут быть изменены без особых проблем в любом текстовом редакторе. Поэтому делаем так:
1. храним настройки в INI/XML
2. при чтении/записи файлов настроек файл просто его шифруем/дешифруем, а можно еще дополнительно ZIP-ануть чтоб места меньше занимал.
Периодически балуюсь с внедренным IE контролом и скриптами, особенно интересно работать с JavaScript и свойством External через которое можно выставить функции приложения наружу. Об использовании этого я еще выскажусь позже.

А сейчас про использовании IE-контрола при активации продукта:
1. После ввода ключа, продукт просит активацию.
2. При активации открывается окошко с внедренным IE и выполняется переход на страницу активации.
3. На странице активации выполняется JavaScript который собственно и выполняет активацию продукта, это может быть, например, вызов набора функций самого же приложения для создания кода с привязкой к HardWareID. Иными словами в самом приложении имеется только код проверки активации, но не готовая функция создания активации, ее роль выполняет набор вызовов функций на странице активации.

Разумеется все это легко ломается крякерами, но я вижу некоторые дополнительные плюсы:
- можно блокировать некоторые ключики на сайте (разумеется от генератора активаций это не спасет, но все же).
- на странице можно предложить купить более новую версию продукта со скидкой или другие свои продукты
- можно выложить ключики продукта в открытый доступ, а на странице активации повесить SMS-замок

Короче придумать можно много еще чего...
У меня сложилось стойкое впечатление, что новичкам (да и наверное не только им) сейчас нужно действовать по следующей схеме:

1. берем наиболее понравившуюся идею из своего списка (не говорите, что у вас нет такого списка, пусть даже мысленного — НЕ ПОВЕРЮ)

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

3. программу делаем как free, либо если хочется сразу денег ставим простенькую защиту — пусть ломают — крякеры тем сами нам помогут своими кряками распространению программы.

4. создаем сайт одностраничник на простом бесплатном шаблоне, например можно взять с www.freecsstemplates.org/ и обязательно ставим статистику посещений

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

6. хелп пишем на сайте очень коротенечко и из программы открываем страницу своего сайта.

7. сабмитим свое произведение на макимальное количество сайтов.

8. берем следующую идею из своего списка и переходим к пункту 2, мониторя по статистике популярность или не популярность выпущенной программы.

Самое главное тут завязать программу на свой сайт, чтоб мы могли видеть по статистике как много людей используют вашу программу. Т.е. мы оцениваем идею, прощупываем почву. Никто не может сказать точно — «выстреллит» ваша программа или нет, не попробовав ее реализовать. Но на реализацию самой первой версии не нужно тратить много времени — не нужно «вылизывать» программу, которая возможно будет никому не нужна.

Т.е. основная мысль — прощупывание рынка на наличие рыбных мест небольшими программными решениями, а не супер вылизанными программами которые вы будете писать, возможно целый год с нулевой отдачей. А иногда и сами пользователи, глядя на вашу первую версию, могут подсказать в каком направлении стоит копать, чтоб найти свою «золотую жилу».

Лично у меня плохо получается следовать этим правилам — у меня болезнь вылизывания кода и интерфейса — перфекционизм — надо как-то с этим бороться. Никто не знает как? :)
суббота, 5 декабря 2009 г.
Это начало истории для литературной игры для блоггеров BlogNetStory, если у вас есть идеи по продолжению истории, пишите его в своем блоге и присылайте ссылку мне или запостите ее к комментарии.


QIP пискнул и показал окошко в области трея. В сообщении только ссылка, отправитель Nick. Как всегда, без лишних слов и объяснений, мол пойди и узнай все сам, это было его в стиле. Nick работал эникейщиком в одной тороговой конторе, которая занималась продажей спирто-водочной продукции и свободного времени, по моему мнению, у него было слишком много. QIP уже спрятал свое окошко и теперь уже подмигивал мне с таскбара. Я открыл окно и кликнул по ссылке. Первым делом я всегда смотрю на дизайн - тут его не было, и не удивительно, домен в зоне .edu да и путь какой-то длинный - простительно... Ладно, скудный текст на английском, что-то про экспериментальный сервис чата с виртуальным собеседником. Видимо, очередная студенческая поделка. Попробуем, Nick очень редко присылал откровенную фигню.

Я еще раз оглядел страницу и взглядом зацепился за знакомое Register. Регистрация. Ну, блин - нафига? Экспериментальный чат, могли бы и открытым сделать. Но форма регистрации оказалась на удивление лаконичной и состояла из одного поля для ввода e-mail. Забавно, ну ладно, давайте, подпишите меня на свой спам. В качестве мыла я указал несуществующий ящик одного из своих доменов. Я всегда так делал, письма для несуществующих адресатов попадали в специальный ящик, откуда я их и забирал, зато реальное мыло не светилось на сомнительных сайтах. Я залогинился на почте под пользователем Spam. Письмо уже было там. Так, что там? Бла-бла-бла... перейдите по ссылке для перехода в ваш персональный чат. Я кликнул по ссылке и распахнул открывшийся Хром на весь экран.

Классическое окно чата, внизу поле для ввода текста, выше окно сообщений и больше ничего - даже адсенса, удивительно. Ну и в чем фишка? Собеседник виртуальный и домен принадлежит какому-то университету, может искусственный интеллект? Надо было пробовать. Я набрал - Hi и нажал Enter. В окне сообщений появился текст:

Hi
>Hi

Хм, версия об искусственном интеллекте похоже находила свое подтверждение - слишком уж быстро был дан ответ, он появился вместе с моим сообщением. Продолжим:

How are U?
>How are U?

Блин, фигня какая-то. Отвечать вопросом на вопрос по крайне мере невежливо. Какой-то этот интеллект слишком уж искусственный. Ладно, спросим напрямую:

Are you bot?
>Are you bot?

Блин, как об стенку горох. Я написал - bye, в окне появилось предсказуемое:

bye
>bye

Я закрыл окно чата. Какой смысл разговаривать самому с собой?

Я вновь открыл QIP и написал Нику - в чем прикол? Но его похоже уже не было, статус картинка - указывала на его отсутствие на рабочем месте. Ладно, появится - ответит. Я закрыл окно QIP-а и вернулся к своим повседневным делам. Нужно было обновить процедуры в одном из модулей, найти баг, который очень давно нужно было уже закрыть, но все никак не доходили руки, собрать промежуточную версию и отправить ее на тестирование. Короче, дел на сегодня было еще много. Я уселся поудобнее и окунулся в кодинг.
пятница, 4 декабря 2009 г.
Моей красавице жене...

Серебристый иней на твоих ресницах.
Холодный воздух так прозрачен, чист и свеж,
Что кажется за миллионы километров,
Я услышу твой веселый, звонкий смех.

Мы стоим в замерзшем зимнем парке,
Ветки елей обнимает снег.
И кажется на миллионы километров,
Время свой остановило бег.

Как во сне я медленно взлетаю,
Заглянув в глаза зеленые твои.
Вверх на миллионы километров,
Прочь от снегом убаюканной земли.

Что бы ни случилось на планете,
Я навсегда останусь только твой.
И даже миллионы километров,
Нас никогда не разлучат с тобой.
Старший сын показал видео виртуозного Andy McKee. Я скачал его 4 альбома и особенно меня впечатлила композиция Rylynn. Мне очень захотелось написать слова на эту музыкальную тему.



Когда отступит зима и весна вдруг погонит прочь,
Холодный ветер и снег, что разлучили нас с тобою в декабре.
Я встану утром без сна, и позабыв обо всем,
В камине я сожгу стихи, что были не о тебе.

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

Когда отступит зима и весна снимет с плеч твоих,
Холодный иней и тот ласковый шелк, что согревал тебя в ночном пути.
Я встану рядом и ты, подняв глаза на меня,
Мою ладонь в свою возьмешь, не дав мне больше уйти.

Навсегда оставшись в наших снах,
Наши чувства лето сохранит и унесет с собой,
Со слезами на губах,
Снова нам с тобою их вернет весной.
Есть у меня одна проблема (хотя вру, у меня их много). Я называю ее "созерцательный ступор". Делаю что-нить, дизайню или программлю и когда очередной этап закончен и результат уже можно посмотреть и поотценивать, я впадаю в этот самый "созерцательный ступор". Смотрю, любуюсь, приглашу домашних посмотреть... Все это вроде бы хорошо, однако, работа дальше не двигается!

Сдвинутся с этой мёртвой точки очень сложно. Созерцание достигнутого результата определенного этапа работы может занимать много времени, не принося никакой пользы. Поэтому, бойтесь "созерцательного ступора"!

Social

Popular

Технологии Blogger.

Постоянные читатели