Процедура восстановления пароля на сайте MS написана исключительными дебилами c отрицательным IQ.
"Напишите скрытые символы al*********@gmail.com" - гласит надпись, снизу поле для ввода.
Пишу только скрытые символы, ответ - неправильный email. Понимаю, что надо написать свой email, пишу - все проходит. Образование у скриптеров, писавших сайт VS похоже не больше месяца церковно-приходской.
; --------------------------------------------------------------
; Прототипы процедур
;---------------------------------------------------------------
WinMain Proto :DWORD, :DWORD, :DWORD, :DWORD
AddLog Proto :DWORD
AddNumberInLog Proto :DWORD
CloseResouses Proto
CreateLog Proto :DWORD
CreateScene Proto
DestroyDirect3D Proto
GetCurrentTime Proto
InitDirect3D Proto
InitFont Proto :DWORD
InitRender Proto
LdCoreCfgFile Proto
LdLogMesFile Proto
LogOutInFile Proto
LogOutInText Proto
RenderScene Proto
SetupCore Proto
; #############################################################################
SYSTEMTIME STRUCT
wYear WORD ?
wMonth WORD ?
wDayOfWeek WORD ?
wDay WORD ?
wHour WORD ?
wMinute WORD ?
wSecond WORD ?
wMilliseconds WORD ?
SYSTEMTIME ENDS
; #############################################################################
.CONST
RoutStart EQU 0 ; Старт игры
RoutMainMenu EQU 1 ; В главном меню
RoutLoading EQU 2 ; Загрузка игры
RoutSerfing EQU 3 ; Передвижение по карте
RoutInventory EQU 4 ; В инвентаре
RoutPDA EQU 5 ; Находимся в ПДА
RoutDialog EQU 6 ; В режиме диалога
; ------------------------------------------------------------------------
; Система вывода логов
; ------------------------------------------------------------------------
NoLogs EQU 0 ; Нет прохода к выводу логов
LogCreate EQU 00000001b ; Создание лога
LogOutText EQU 00000010b ; Вывод лога на экран
LogOutBoth EQU 00000011b ; Вывод лога туда-сюда
; ------------------------------------------------------------------------
; Константы сообщений логов
; ------------------------------------------------------------------------
OK EQU 0
ERROR EQU 1
EXIT EQU 2
LOG_RADIUM_START EQU 3
LOG_CORE_SETUP EQU 4
LOG_CORE_CFG_LOADING EQU 5
LOG_CORE_CFG_OPEN EQU 6
LOG_CORE_CFG_ERROR EQU 7
LOG_HEAPALLOC_OK EQU 8
LOG_HEAPALLOC_ERROR EQU 9
LOG_CORE_CFG_READ EQU 10
LOG_CORE_CFG_READ_ERROR EQU 11
LOG_CORE_CFG_INDEXED EQU 12
LOG_BYTES_STORED EQU 13
; #############################################################################
.DATA
ClassName DB "R3DEClass", NULL ; Имя класса окна
szAppName DB "Radium 3D Engine V1.05", NULL ; Титл окна
WinX DD ? ; Ширина окна
WinY DD ? ; Высота окна
Clearcolor DD 0
Zvalue DD 1.0f
; ------------------------------------------------------------------------
; Система вывода логов
; ------------------------------------------------------------------------
LogLength DD 160 ; Максимальная длина строки
BufferLogs DD ? ; Адрес буфера строк для логов
OffsetBuffer DD ? ; Смещение на адрес на текущую строку лога
OffsetBufferTime DD ? ; Смещение на адрес первого ->
; -> символа после даты\времени
LogColor DD 0F0B0F0F0h ; Цвет шрифта логов
CurrentProcNumber DD ? ; Текущая процедура для логов
; ------------------------------------------------------------------------
; Числовые форматы для wsprintf
; ------------------------------------------------------------------------
DefaultFormat DB "%d ", 0
DigitSFormat DB "%d ", 0 ; Формат для простого числа
Digit3Format DB "%03d", " - #", 0 ; Формат для миллисекунд
DigitProcFormat DB "%08X", " - " ; Формат для номера процедуры
NumberString DB 20 DUP (0) ; Буфер для даты\времени
; ------------------------------------------------------------------------
; D3DPRESENT_PARAMETERS
; ------------------------------------------------------------------------
BackBufferWidth DD 0 ; Ширина BackBuffer
BackBufferHeight DD 0 ; Высота BackBuffer
BackBufferFormat DD D3DFMT_X8R8G8B8 ; Формат используемой поверхности
BackBufferCount DD 3 ; число Back буферов.
MultiSampleType DD 0 ; уровни мультисэмплинга картинки. (обычно от 2-ух и выше)
MultiSampleQuality DD 0 ;
SwapEffect DD D3DSWAPEFFECT_FLIP ; Эффект обмена поверхностей (BackBuffer)
hDeviceWindow DD 0 ; ID нашего окошка
Windowed DD 0 ; 0 - полноэкранный, 1 - в окошке
EnableAutoDepthStencil DD TRUE ; 1 - Direct3D создает Z + Stencil буфер. Если 0 - ничего не будет создано
AutoDepthStencilFormat DD D3DFMT_D24S8 ; Формат используемой поверхности
Flags DD 0 ; 0 или D3DPRESENTFLAG_LOCKABLE_BACKBUFFER=1
FullScreen_RefreshRateInHz DD 0 ; Частота обновления экрана в Hz
FullScreen_PresentationInterval DD 0 ; Интервал показа на экране backbufferа. 1 = Ждать обратного хода луча
EyeVector D3DVECTOR <0.0f, 3.7f, -9.35f> ; Координаты камеры в пространстве
LookAtVector D3DVECTOR <0.0f,6.0f, 0.0f> ; Указывает куда смотрит камера
UpVector D3DVECTOR <0.0f, 1.0f, -0.0f> ; Верх камеры. Обычно берется 0.0,1.0,0.0
FieldOfView DD 1.7953981635f ; D3DX_PI4 ;0.7853981635f. Поле обзора камеры в радианах обычно берется (D3DX_PI/4)
AspectRatio DD NULL ; AspectRatio
NearViewPlanZ DD 1.0f ; Передняя отсекающая плоскость
FarViewPlanZ DD 100.0f ; Задняя отсекающая плоскость
; ------------------------------------------------------------------------
; LOGFONT - Параметры шрифта
; ------------------------------------------------------------------------
lfHeight DD 0 ; Размер
lfWidth DD 0 ;
lfEscapement DD 1 ;
lfOrientation DD 0 ;
lfWeight DD 0 ;
lfItalic DB 1 ; Кириллица поддерживается здесь
lfUnderline DB 0 ;
lfStrikeOut DB 0 ;
lfCharSet DB ANSI_CHARSET ; Кодировка по умолчанию
lfOutPrecision DB 0 ;
lfClipPrecision DB 0 ;
lfQuality DB 1 ;
lfPitchAndFamily DB 0 ;
lfFontName DB "tahoma", 0 ; Имя шрифта
; ------------------------------------------------------------------------
; Секция имен файлов
; ------------------------------------------------------------------------
nLogMessagesFile DB "config\log.msgs", NULL
nLogFile DB "log.txt", NULL
nCoreCfgFile DB "config\core.cfg", NULL
; #############################################################################
.DATA?
pd3d DD ? ; или LPDIRECT3D9
pd3dDevice DD ? ; или LPDIRECT3DDEVICE9
WorldMatrix D3DMATRIX <?> ; Мировая матрица
ViewMatrix D3DMATRIX <?> ; Матрица вида
ProjectionMatrix D3DMATRIX <?> ; Матрица проекции
pd3dFont DD ? ; Указатель на шрифт
TextLeftSet DD ? ; Установка для вывода текста
TextUpSet DD ? ; -
StringHeight DD ? ; Высота строки на экране
; ------------------------------------------------------------------------
; Состояние игры
; ------------------------------------------------------------------------
; 0 - Старт
; 1 - Главное меню
; 2 - Загрузка
; 3 - Передвижение по территории
; 4 - Инвентарь
; 5 - ПДА (карта, задания, статистика)
; 6 - Диалоги
; ------------------------------------------------------------------------
CurrentGameRoutine DD ?
; ------------------------------------------------------------------------
; ########################################################################
; Все коды ошибок в EBX. В EAX -
; 0 - Нет ошибок
; 1 - Ошибка создания D3DX9
; 2 - Ошибка создания устройства D3DX9
; 3 - Ошибка создания шрифта
;
2. ASM в Вашем образце, культура кодирования отвратительная. В самом начале процедуры должно быть описание, вход, выход, действия. Зачем вообще ассемблер для этой задачи? Страдают читаемость и переносимость.
3. Не обязательно строка файла заканчивается LF знаком, последняя строка может быть без LF знака, Вы такую строку не считаете.
4. Выходной код лучше отдавать в обычном eax регистре.
1. Что есть K&R?
2. Это не инлайн процедура в сикоде. Это одна из асм-процедур в асм-программе. Весь движок будет на асме.
Там пока 30Кб кода и еще 12Кб в inc-файле всяческих прототипов, макросов, констант, структур и т.д.
3. У меня все предусмотрено. В читаемых файлах последняя строка неудаляемая.
4. Нельзя. В eax содержится код ошибки последней выполненной функции для выходного лога. GetLastError - не вариант.
1. а чем вас if не устроил?
или вы из тех, кому не конечный результат, а красота кода важнее?
2. у меня ребенок сейчас ходит на курсы программирования, ему 10 лет.
я ему всегда говорю - чем проще код, то тем легче его потом понять и изменить.
Не устроил тем, что человек не думал, прежде чем ответить, а наколбасил первое решение, которое забрело ему в голову.
Еще не устроило тем, что if - это слишком тупо. Еще не устроило тем, что знаю более подходящее для сишника решение: x = y - x Вот всё решение. И никаких 5 строк не нужно выдумывать и городить 10 огородов. Одна строка и всё.
edogs: 1. Не предусмотрена ситуация, когда x оказывается 210 (допустим), задумайтесь об этом.
1. В условиях задачи нет оговорки, что напряжение нестабильно. Но направление мысли очень верное - оградить процедуру от каких только возможно ошибок.
Мужественно рукопожимаю! Держите плюсик.
Artisan: А судьи кто?
if (x > 110)
x = 0; else
x = 220;
Я без словаря в крестах не разбираюсь. Как в Хатч в masm32 организовал макрос, так я и пишу сейчас.
LdCoreCfgFilePlus02:
mov eax, esi ;
sub eax, ebx ; Разница = длина пройденной строки
mov [edx], eax ; Сохраняем длину строки
add edx, 4 ; Прибавляем для следующего захода
loop LdCoreCfgFileLoop021
jmp LdCoreCfgFileExit
LdCoreCfgFileComplete02:
mov eax, esi ;
sub eax, ebx ; Разница = длина пройденной строки
mov [edx], eax
; --------------------------------------
; Индексировано успешно
; --------------------------------------
LdCoreCfgFileExit:
invoke CreateLog, LOG_CORE_CFG_INDEXED
invoke LogOutInFile
; --------------------------------------
xor ebx, ebx ; Выходной код процедуры "Нет ошибки"
ret
LdCoreCfgFile EndP
admak: xor - это классика ассемблера. :)
Держите еще один вариант, тоже классика:
x = 0 // начальная инициализация
x = 220 - x // сам тригер
:D :D :D Спасибо за мою же собственную цитату самому же мне. :D
Wadim: В результате долгого и нудного отбора программистов под разные, я пришел к выводу, что надо научиться хоть минимально проверять их знания. Что происходит в противном случае многие знают.
Кто-нибудь так еще делает? Какие общие тестовые вопросы задаете программистам?
Или только конкретные тестовые задания?
Было дело, набирал в проект программеров-сишников. Набрал бы низкоуровневщиков, но их теперь очень мало осталось. А те, что остались, люди в основном инертные.
Так вот, простая задача: написать программу "кнопка-триггер".
Дано:
1. Источник электропитания - y;
2. Проводник - x;
3. Кнопка - программа;
4. Потребитель электропитания (не фигурирует в программе).
Описать принцип кнопки-триггера, переключающей напряжение 220В - 0В.
В абсолютно всех присланных решениях использовались условные операторы if:
if x = 220
x = 0
else
x = 220
endif
Один чел прислал решение xor 220. И его не взял, т.к. решение он подсмотрел. Пишу сам с 2-мя старыми сишниками-знакомыми.
1. Те, кто не знает, что такое работа админа поголовно считают - его главная и святая обязанность стать живой капчей форума, то есть не пропускать ни ботов, ни ручных ботов, ни школоты разного толка на форум.
2. На самом деле задача админа заключается в организации жизни форума - чтобы люди общались, чтобы боты хрумы проходили мимо автоматом, чтобы модеры на форуме занимались развитием своих разделов, чтобы банально эти модеры на форуме были и т.д. и т.д. и т.д.
3. Так что прежде чем критиковать, сначала потрудитесь поработать в роли админа на форуме, а не просто в роли вебмастера, которые всё сам делает и капчует и антиботует и отвечает каждому встречному и поперечному и т.д.
1. Именно это и есть работа админа - на то он и админ. Но не надо путать админа с владельцем. Владелец может совершенно ничего не знать об iptables и sql-ях. Но админ это всё знать обязан, на мой, впрочем, дилетантский взгляд.
2. Понимаю вас: заоблачная высь, стратегический планирование, оперативные разработки, определение тактических задач; управление армиями и фронтами - это всё чрезвычайно интересно и очень круто! Но извините, с вашего позволения, я помогу вам спуститься на землю.
Посмотрите на название вашего топика: Раскрутка форумов на постоянной основе.
Так вот, всё, что я сказал выше про админа и владельца, истинно исключительно для таких форумов, как Сёрч, которые (сюрприииз!) в наших с вами услугах НЕ-НУЖ-ДА-ЮТ-СЯ. А на только что запиленных форумах никаких модеров и админов нет. Владелец форума - он же и админ, и модераторы, и несколько вяло сюсюкающихся между собою пользователей. Вот, такие форумы нуждаются в наших услугах.
Собственно, заниматься раскруткой форума должны не админы, а владельцы. А помогать в этом им должны либо модераторы (слово-то какое, как же оно переводится?), либо мы с вами, если модераторов нет.
3. Я ни сколько не умаляю ваших достоинств, Алексей. У вас безусловно богатый опыт работы и огромный запас теоретических знаний. Учитывая это обстоятельство, мне хотелось бы вас спросить: у вас свой форум есть?
Алексей Фоменко: Самый эффективный способ развития любого форума - это работа на опереженение. То есть ответы всегда должны быть профессиональными и компетентными...
Охо-хо-нюшкиии... Теоретики, как же далеки вы от народа. :(
То есть, вы прикажете админу вычищать все ответы в топике, которые он посчитает непрофессиональными и некомпетентными?
MoMM: vbgm, вы монстр орфографии, в хорошем смысле этого слова. Я уже было начал думать, что таких людей больше не осталось. Большое спасибо за глоток чистого, по зимнему хрустально звенящего орфографического воздуха.
Спасибо.
MoMM: Я уже было начал думать...
А вот эту конструкцию я бы переписал. Тяжеловата, на мой вкус ;)
Процедура восстановления пароля на сайте MS написана исключительными дебилами c отрицательным IQ.
"Напишите скрытые символы al*********@gmail.com" - гласит надпись, снизу поле для ввода.
Пишу только скрытые символы, ответ - неправильный email. Понимаю, что надо написать свой email, пишу - все проходит. Образование у скриптеров, писавших сайт VS похоже не больше месяца церковно-приходской.
Кстати все опции сегодня вернулись (не шутка)....
Охренеть! Само собой! :D Как у меня исчезло в Курилке и Духовке!
Ладно, херли тут строить из себя крутых программистов... 🤣
Artisan, постараемся не запутатся.
Вот, собсно, сам проект.
типатаво )
Пришлось чуть урезать...
Спасибо!
1. Я писал без крестов, K&R, вот это наше все.
2. ASM в Вашем образце, культура кодирования отвратительная. В самом начале процедуры должно быть описание, вход, выход, действия. Зачем вообще ассемблер для этой задачи? Страдают читаемость и переносимость.
3. Не обязательно строка файла заканчивается LF знаком, последняя строка может быть без LF знака, Вы такую строку не считаете.
4. Выходной код лучше отдавать в обычном eax регистре.
1. Что есть K&R?
2. Это не инлайн процедура в сикоде. Это одна из асм-процедур в асм-программе. Весь движок будет на асме.
Там пока 30Кб кода и еще 12Кб в inc-файле всяческих прототипов, макросов, констант, структур и т.д.
3. У меня все предусмотрено. В читаемых файлах последняя строка неудаляемая.
4. Нельзя. В eax содержится код ошибки последней выполненной функции для выходного лога. GetLastError - не вариант.
1. а чем вас if не устроил?
или вы из тех, кому не конечный результат, а красота кода важнее?
2. у меня ребенок сейчас ходит на курсы программирования, ему 10 лет.
я ему всегда говорю - чем проще код, то тем легче его потом понять и изменить.
Не устроил тем, что человек не думал, прежде чем ответить, а наколбасил первое решение, которое забрело ему в голову.
Еще не устроило тем, что if - это слишком тупо. Еще не устроило тем, что знаю более подходящее для сишника решение: x = y - x Вот всё решение. И никаких 5 строк не нужно выдумывать и городить 10 огородов. Одна строка и всё.
1. Не предусмотрена ситуация, когда x оказывается 210 (допустим), задумайтесь об этом.
1. В условиях задачи нет оговорки, что напряжение нестабильно. Но направление мысли очень верное - оградить процедуру от каких только возможно ошибок.
Мужественно рукопожимаю! Держите плюсик.
А судьи кто?
if (x > 110)
x = 0; else
x = 220;
Я без словаря в крестах не разбираюсь. Как в Хатч в masm32 организовал макрос, так я и пишу сейчас.
Судья я. Вот мой пример, прошу критики.
xor - это классика ассемблера. :)
Держите еще один вариант, тоже классика:
:D :D :D Спасибо за мою же собственную цитату самому же мне. :D
Именно об этом случае я и рассказываю.
В результате долгого и нудного отбора программистов под разные, я пришел к выводу, что надо научиться хоть минимально проверять их знания. Что происходит в противном случае многие знают.
Кто-нибудь так еще делает? Какие общие тестовые вопросы задаете программистам?
Или только конкретные тестовые задания?
Было дело, набирал в проект программеров-сишников. Набрал бы низкоуровневщиков, но их теперь очень мало осталось. А те, что остались, люди в основном инертные.
Так вот, простая задача: написать программу "кнопка-триггер".
Дано:
1. Источник электропитания - y;
2. Проводник - x;
3. Кнопка - программа;
4. Потребитель электропитания (не фигурирует в программе).
Описать принцип кнопки-триггера, переключающей напряжение 220В - 0В.
В абсолютно всех присланных решениях использовались условные операторы if:
if x = 220
else
endif
Один чел прислал решение xor 220. И его не взял, т.к. решение он подсмотрел. Пишу сам с 2-мя старыми сишниками-знакомыми.
Но надежда есть!
1. Те, кто не знает, что такое работа админа поголовно считают - его главная и святая обязанность стать живой капчей форума, то есть не пропускать ни ботов, ни ручных ботов, ни школоты разного толка на форум.
2. На самом деле задача админа заключается в организации жизни форума - чтобы люди общались, чтобы боты хрумы проходили мимо автоматом, чтобы модеры на форуме занимались развитием своих разделов, чтобы банально эти модеры на форуме были и т.д. и т.д. и т.д.
3. Так что прежде чем критиковать, сначала потрудитесь поработать в роли админа на форуме, а не просто в роли вебмастера, которые всё сам делает и капчует и антиботует и отвечает каждому встречному и поперечному и т.д.
1. Именно это и есть работа админа - на то он и админ. Но не надо путать админа с владельцем. Владелец может совершенно ничего не знать об iptables и sql-ях. Но админ это всё знать обязан, на мой, впрочем, дилетантский взгляд.
2. Понимаю вас: заоблачная высь, стратегический планирование, оперативные разработки, определение тактических задач; управление армиями и фронтами - это всё чрезвычайно интересно и очень круто! Но извините, с вашего позволения, я помогу вам спуститься на землю.
Посмотрите на название вашего топика: Раскрутка форумов на постоянной основе.
Так вот, всё, что я сказал выше про админа и владельца, истинно исключительно для таких форумов, как Сёрч, которые (сюрприииз!) в наших с вами услугах НЕ-НУЖ-ДА-ЮТ-СЯ. А на только что запиленных форумах никаких модеров и админов нет. Владелец форума - он же и админ, и модераторы, и несколько вяло сюсюкающихся между собою пользователей. Вот, такие форумы нуждаются в наших услугах.
Собственно, заниматься раскруткой форума должны не админы, а владельцы. А помогать в этом им должны либо модераторы (слово-то какое, как же оно переводится?), либо мы с вами, если модераторов нет.
3. Я ни сколько не умаляю ваших достоинств, Алексей. У вас безусловно богатый опыт работы и огромный запас теоретических знаний. Учитывая это обстоятельство, мне хотелось бы вас спросить: у вас свой форум есть?
Самый эффективный способ развития любого форума - это работа на опереженение. То есть ответы всегда должны быть профессиональными и компетентными...
Охо-хо-нюшкиии... Теоретики, как же далеки вы от народа. :(
То есть, вы прикажете админу вычищать все ответы в топике, которые он посчитает непрофессиональными и некомпетентными?
vbgm, вы монстр орфографии, в хорошем смысле этого слова. Я уже было начал думать, что таких людей больше не осталось. Большое спасибо за глоток чистого, по зимнему хрустально звенящего орфографического воздуха.
Спасибо.
Я уже было начал думать...
А вот эту конструкцию я бы переписал. Тяжеловата, на мой вкус ;)