суббота, 18 сентября 2010 г.

Использование AutoIt

Написал статью про использование AutoIt. Программка получилась забавной, по-моему. Строго не судить =)
ACalc.rar

пятница, 17 сентября 2010 г.

ASM или Что делать?

Нашел вот книжицу занятную: "Язык ассемблера: уроки программирования" П.И. Рудакова и К.Г. Финогенова. И призадумался: а нужен ли мне этот самый ассемблер? И что-то повода его изучать подробно не нашел. Текущих знаний для отладки программ вроде хватает. Со всем нуждами до сих пор справлялся на скриптовых и высокоуровневых языках. Драйвера писать не планирую, asm-вставки для критических областей тоже как-то не особо нужны. Отложил книжицу... и опять призадумался: а чем же время занять - пописать статьи про трейнеры, ковырянее игр и т.п. или кодить что-нибудь интересное и не однодневное (пока таких вариантов нет). Жду советов каких-нибудь =).

пятница, 27 августа 2010 г.

Hamachi

Нашел интересную программку. В первую очередь она будет интересна геймерам. Вот например захотели вы с друзьями поиграть в Diablo 2 по сети, а IP у вас динамический, и подключится к вам будет не возможно. Так эта программка создает виртуальную локальную сеть. Т.е. компьютеры на самом деле подключены только к интернету, а обращаться к ним можно как к локальным. Во общем программа для меня полезная. Вот ссылка:
Hamachi2

четверг, 12 августа 2010 г.

О паролях и лени

Человек существо ленивое. Очень. Вот и пришла мне мысля преинтересная - практически везде (ну или почти) человек вводит один и тот же пароль. Т.е. понятно, как этим можно воспользоваться злоумышленникам. Если на один из двух вопросов "Кто виноват? Что делать?" ответ уже дан, то на второй он понятен: не используйте один и тот же пароль. Если у вас взломали ICQ или почту, то получить доступ к другому не составить труда. Лень - это величайшее зло!

понедельник, 2 августа 2010 г.

О кодерах и кодинге

Навеял конец лета... Может эта записка покажется кому-то близкой. Начну сначала. Собрался, я значит написать вторую версию бота, что бы там всяких приятностей было побольше. Начал писать. За месяц реализовал процентов 70. Бросил.. Через 2 месяца за вечер написал ещё 10% процентов. Бросил.. Через недели 3 начал тестить, а-ля альфа-тестирование. Не работает. За неделю написал заплаток. Работает кое-как. Бета-тестирование... Ещё за неделю написал заплатки. Ядро работает, но не всё так красиво как задумывалось в начале. От альфа-версии осталось 80% процентов. Запустил. Работает. НО! GUI нету вообще, управлять можно только меняя исходный код и ручками писать настройки в INI файле. Итого, реализовано 85%. Теперь ещё прикручивать GUI, иначе управлять ботом одной клавишой старта (F9) (причем только старта, стопа нет - только вырубать и запускать заново) и ковырянием настроек - это какой-то ДZен..
Теперь, к чему это я все веду.
1. Кодеры существа ленивые и без надсмотра менеджера ничего толком не сделают
2. Кодеры существа странные. Они в первую очередь задумываются о ядре, а уже потом в самом конце прикручивают интерфейс, чаще всего убогий. Т.е. без менеджера опять же напишут всякую охинею.
3. Кодеры существа самодовольные. Если вы попросите их написать программу, под тип калькулятора, то как ей управлять будет известно только Избранным, таким как сами кодеры (обычно 2-3 человека, тоже кодера)
4. Кодеры существа эгоистичные, очень сложно двум кодерам вести проект: где первый обзовёт переменную "countINDEX", второй гордо напишет "AUI" или что-то в этом роде

Итак, вывод: Процесс написания проекта нифига не зависит от одного кодера. То, что он напишет - процентов 50%, максимум 60% от того, что нужно на самом деле. А если и напишет, то это ещё надо и заказчику спихнуть, при этом никаких: "Э.. А вы зачем сразу две кнопки нажали? У меня это и не предусмотрено!" или "Главное вот на этом процессе чуть-чуть подождать и ничего не нажимать - идет процесс анализ данных. Ну и что, что он идет 20 минут? Зато это самый красивый метод!" и т.п.

пятница, 30 апреля 2010 г.

Оптимизация кода AutoIt

Все кто пишет на AutoIt`е жалуются на медленность кода. Ну я тоже не исключение=) Вот и решил провести маленькое исследование - какая из функций будет работать быстрее - так, которая вызывается из UDF,  описанная в текущем файле или сразу код функции? До начала самого исследования думалось что по скорости они будут расположены так:

1. Сам код функции

2. Описанная в текущем файле

3. Вызываемая из UDF

Итак, для теста было создано два файла:

головной:


#include <TEST.au3>

;Немного подождём - что бы скрипт нормально загрузился и размялся перед боем
$SUM = 0
For $J = 1 To 1000
$SUM += TEST()
Next

;Здесь - для конкретного кода, а не вызывания функции
$time3 = TimerInit()
$SUM = 0
For $J = 1 To 1000
$RET = 0
For $I = 1 To 100
$RET *= $I
Next
$SUM += $RET
Next
$time3 = TimerDiff($time3)
;Здесь будем замерять время для функции вызванной из UDF
$time1 = TimerInit()
$SUM = 0
For $J = 1 To 1000
$SUM += TEST()
Next
$time1 = TimerDiff($time1)
;А здесь - для описанной ниже
$time2 = TimerInit()
$SUM = 0
For $J = 1 To 1000
$SUM += TEST2()
Next
$time2 = TimerDiff($time2)

MsgBox(0,"Результаты", "Из UDF: " & $time1 & Chr(13) & "Внутри: " & $time2 & Chr(13) & "Код: " & $time3)

Func TEST2()
$RET = 0
For $I = 1 To 100
$RET *= $I
Next
Return
EndFunc


TEST.au3 :

Func TEST()
$RET = 0
For $I = 1 To 100
$RET *= $I
Next
Return
EndFunc


Итак, после 10 замеров получили вот такой результат:

1. Сам код функции, а не её вызов

2 и 3 Вызов из UDF и вызов их текущего файла

Причём, влияет порядок следования функций. Например если сначала замерять time1, а потом time2, то time1 будет больше. Если наоборот, т.е. сначала time2, потом time1, то time2 будет больше. 

Итак, резюмирую:

  • На скорость работы скрипта не влияет расположение функции - она может быть описана как в отдельном файле, так и в текущем.
  • Отказ от функций и использование непосредственно кода этой функции даёт существенный прирост скорости.




среда, 28 апреля 2010 г.

Простой навигатор для консоли

Итак, менюшка уже описана, а вот и её применение. Простенький навигатор по диску с помощью меню. Может перемещаться по папкам, запускать любые файлы. Пока всё - это все лишь пример применения меню=)  Но мне вещь показалась полезной при работе в консоле=)

Скачать