БлогNot. Блог ПерСа

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

алгоритм javascript список jquery графика ретро эзотерика россия книги дата китай php учебное форматы личное спорт символ образ программирование философия деградация общество стихи random игра c++ ошибка плакат люди шахматы числа rip зомбоящики преступление психология сон маразм qt windows unix время форум англия бюрократизм образование макрос vba excel email безопасность все теги все комментарии поиск!


[1-15] [16-30] [31-45] [46-60] ... [1981-1995] [1996-1997]


PHP: пишем почтовую форму "попроще"

Код частично из архивов, но, вроде бы, ничего особо "страшного" в нём нет. Здесь я не отправлял письмо с вложением, а просто организовывал более-менее простую и безопасную форму для программной отправки электронной почты, то, что называют mailer. Только нужен был достаточно простой.

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

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

В отличие от множества других подобных скриптов, доступных в сети, этот скрипт состоит всего из одного файла, имеет простую текстовую капчу и загружает форму только после загрузки всей страницы, что "обрубает" большинство известных ботов. На отключённый Javascript выдаётся сообщение-предупреждение, а если в браузере клиента отключены Cookie, письмо также не получится отправить. Настройки URL скрипта и сайта также прописываются в коде "ручками", так и проще, и надёжней. Также в заголовок X-Mailer и в текст письма включается IP-адрес отправителя.

Через POST никаких кодов не передаётся, только сохраняется в сессии "сдвинутый" с помощью настройки SECRET и при этом зашифрованный код капчи. При показе пользователю капча "зашумляется" случайными тегами.

Исключив из начала файла вызов session_start (наверняка он у Вас делается где-то в другом месте) и настроив форму "под себя" Вы легко сможете встроить такой простой mailer в существующий проект.

Код не снабжён HTML-обрамлением, предполагается, что оно будет там, куда вставляется программа.

Можно снабдить такую форму javascript-активизацией кнопки "Отправить", которая срабатывает только тогда, когда пользователь заполнил нужные поля (так сделано у меня в блоге), но опыт показывает, что если заполняемых полей более двух, это только сбивает с толку.

Предполагается, что скрипт будет работать и отправлять письмо в кодировке Юникод (UTF-8). Вот код файла .htaccess, размещённого в папке с мейлером: Страница статьидалее...
12.05.2018, 13:19 [106]


Решаем счётные задачи с помощью Excel VBA

Visual Basic for Applications (VBA) – диалект языка Visual Basic, включённый в состав пакета Microsoft Office. Программы на VBA, называемые макросами, могут выполняться прямо из документа Word или Excel, используя при этом в качестве интерфейса пользователя стандартные для Windows кнопки, поля ввода, списки, окна диалога или переключатели.

Изучение языка - тема отдельная, хотя он совсем несложен. В этой заметке я покажу лишь самые очевидные вещи - как ввести данные и вывести результаты работы двумя основными способами - с помощью окон диалога и непосредственно в ячейки рабочего листа Excel.

Перед началом работы:

1. Включите настройку Кнопка Office - Параметры Excel (или Word) - Основные - "Показывать вкладку Разработчик на ленте".

2. На вкладке Разработчик нажмите кнопку Безопасность макросов и разрешите выполнение макросов: Страница статьидалее...
09.05.2018, 10:56 [178]


Заметки с коммуникатора. 34. Январь-апрель 2018-го: "глаза партии в бесконечном лабиринте"

Я почти оставил привычку куда бы то ни было брать с собой "лопату", но что-то на ней таки появляется, думаю, пришло время сбросить очередной файл, который снова будет небольшим.

Как и прежде, заметки вполне бессмысленны, но каждая из них служила мне напоминанием о чём-то, как правило, не сделанном :)

Правила Бесконечного Лабиринта
1. Если уж ты заблудился в бесконечном лабиринте, не пытайся выбирать там осмысленный маршрут. При твоём случайном блуждании вероятность твоего обнаружения будет выше, так как среднее расстояние от исходной точки начнёт подчиняться законам статистики
2. Если правила безумны, начинать игру первым не стоит. В антишахматах проигрывает тот, кто ходит белыми
3. Любая задача на упрощение легче решается с конца, метод от Противного рулит
4. Чем что–то сложнее как система, тем оно гибче и приспосабливаемей. Бесконечность устроена предельно просто. И она ни к чему не приспосабливается, а всё приспосабливается к ней
5. Изучать можно законы, но не факты. В бесконечности нет фактов, а только законы. Её можно изучать
6. Если кто–то показал вам дорогу в лабиринте, последуйте совету. Всё равно там все дороги равноценны

Страница статьидалее...
09.05.2018, 10:11 [90]


Кенгурировали, кенгурировали, да не выкенгурировали

Я, пожалуй, больше не буду отвечать на мылописьма в паблике, хотя я почти всё готов делать в паблике, кроме того, что заведомо никому не интересно (писаю, кушаю, храплю и проч. я точно так же, как другие люди, поэтому в паблике сиё, надеюсь, никому не интересно).

Но народ зачем-то пишет и спрашивает, хотя я никого к этому не призывал, а только отпугивал ("Учтите, что читая его, Вы вторгаетесь на мою личную территорию")

И вновь, как широко признанного в узких кругах "нумеролога" и "пророка", меня даже о кенгурации спросили (термин общепринятый). Уже 11-й час вечера, то есть, наступают "полчаса для себя", но я их не использую для себя, а попробую написать.

Это же не "собственный класс для поддержки стека объектов любого типа" делать. Страница статьидалее...
08.05.2018, 22:54 [126]


Великие и не очень на Lichess

Не все знают, что чемпион мира по шахматам Магнус Карлсен тоже поигрывает на "личессе" в пулю по минуте. На данный момент - чемпион по ней. Так что, если хотите сыграть с чемпионом мира - вызывайте на игру DrDrunkenstein, вот его профиль. А немного раньше чемпион был "осликом Дэнни".

Поигрывает в пулю и Bombegranate, в миру - нынешний претендент Фабиано Каруана, но его текущий рейтинг заметно ниже и в последние пару месяцев ему явно было не до сайта (победа в турнире претендентов, потом в Гренке и 2-е место в чемпионате США).

Кто ещё из известных шахматистов есть на личессе? Если покопаться даже просто в топе игроков, можно найти многих.

Например, "пингвин Джим", очень активный на ресурсе - это не слишком известный, но вполне настоящий ГМ Эндрю Тэнг, а вот Карякиных удалось найти только фейковых, да ещё "супер" фан-группы вроде вот такой (скрин подлинный): Страница статьидалее...
05.05.2018, 21:55 [100]


Будет или не будет?..

Просто получил тут от человека довольно длинное и сумбурное письмо, суть которого сводилась к душевному трепету на 2 темы: "будут ли и дальше сажать за лайки/перепосты?" и "будет ли война?".

Хватило бы и этого ответа:

Ну, да ладно, отвечу чуть подробней. 1. Будут, но не всех :) 2. Не будет.

Как верно сказал блогер, на практике либерализм и комфорт победили абсолютно во всех слоях общества, потому что для себя-то любимого крепостного права и "привилегии умереть первым" не хочет никто. Это пусть another one bite the dust.

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

Во-первых, дорого, во-вторых, компетентных душителей - наперечёт, в-третьих, просто бессмысленно.

Вы искренне заблуждаетесь, думая, что Ваш лично или Вашего колхоза образ мыслей имеет для кого-то в мире какое-то значение. Что там думают себе рабы, совершенно неважно, пусть себя считают хоть инопланетянами. Нравится им ходить 9-го мая с портретами участников военных конфликтов прошлого века - пускай ходят. Не нравятся педерасты - пусть себе "гей-парады" разгоняют. Нравится обновленческое православие - пускай верят.

Пусть активнее выпускают пар в искусственных "культурных противостояниях", курильщики там против некурильщиков, собачники против кошатников, русские против кавказцев и прочая мура.

Главное, чтобы не понимали, что шансов нет. Можно даже им чего-нибудь на трёх детей повыплачивать, лишь бы не посчитали за 2 минуты на калькуляторе, что для выживания нации и удержания территории тем же русским сегодня нужно минимум 5 детей в семье.

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

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

Потому что только эти 2 вещи могут способствовать росткам свободы в колонии или хотя бы подтолкнуть к развитию головного мозга статистически значимое количество её насельников.

Так что войны колонии с метрополией не будет, вот гражданская война населения против колониального правительства - другое дело, этого ожидать можно, но вероятность весьма мала, настолько у насельников РФ далеко уехавшая крыша и виртуальное мировосприятие.

В чём это последнее выражается? Да довольно понятно. Страница статьидалее...
03.05.2018, 15:00 [137]


Ещё 24 не пригодившихся первомайских задачки на C++

Как-то нечего больше запостить, пусть будет хоть очередная коллекция, предыдущая - здесь.

Тематика задач разная - от типовых алгоритмов и обработки строк до число виндоузовских консольных заморочек, всё выполнялось в консоли Visual Studio 2015 (C++). Если Вы пришли на эту страницу из поисковика, для быстрого поиска на ней нужного слова нажмите в браузере комбинацию клавиш Ctrl+F и введите слово :)

1. Нарисовать синусоиду (или другой график функции одной переменной) в окне консоли. Страница статьидалее...
03.05.2018, 13:26 [181]


Неделя с двумя понедельниками :)

Вышло так в связи с переездом 30-го апреля на 28-е. Если работа зависит от дня недели, то весело, как мне. Зато потом чуть не неделя одних суббот.

Судя по моему календарику, в этом году 147 рабочих дней и 118 выходных + праздничных.

Отнимите от количества рабочих дней пусть даже 20 дней 4-недельного оплачиваемого отпуска (а у многих больше) и получите соотношение 127 к 138, то есть, почти 48% бездельных дней, прямо как в моём шуточном "расследовании" о том, сколько мы работаем на самом деле.

А кто будет на бомбёжки Сирии и чемпионаты по футболу президенту зарабатывать?

Учитывая, что "загнивающий Запад" давно поговаривает о 4-дневной рабочей неделе, пора и в нашем заповеднике её вводить. Отпуска, конечно, нужно отменить, тем более, что при достижении final level они становятся явно не нужны, Юрьев день же в царской России в итоге был отменён!..

В общем, сколько в году дней с понедельника по четверг включительно?

Найти это не сложней, чем количество чёрных пятниц, и формулу наверняка можно вывести сложности O(1), только лень. А перебором, конечно, минутное дело.

Получать день недели "стандартно" через <ctime>, мне кажется, имеет смысл только в том случае, если вы уверены, для какого интервала лет вам это нужно.

Скажем, стандартный пример вот отсюда теоретически должен работать для дат с 1900 года, практически же он в моём Studio объявил пятницей взятый для пробы понедельник 21 октября 1940.

В общем, локаль для старых дат - бяка, старого доброго Зеллера никто не отменял.

Мы его здесь ещё упростим, чтобы была в блоге getWeekDay на C++, а программка получится такой: Страница статьидалее...
27.04.2018, 17:36 [123]


Добрые числа :)

Не всё же числам злыми быть, должны быть и добрые :)

Число является добрым, если каждая цифра числа больше чем сумма цифр, стоящих справа от неё. Например, 4210 - доброе число, потому что 4 > 2+1, 2 > 1+0 и 1 > 0.

Числа из 1 цифры и 10, 20, ..., 90 добры по определению (100 - уже нет), остальные добрые числа тоже могут состоять из разных цифр, как, впрочем, и злые. Только их окажется меньше, чем злых, хотите, посчитайте насколько.

Такой простой алгоритм, как для злых чисел, для добрых что-то не вырисовывается, придётся просто перебрать.

Впрочем, добро вообще неизмеримо сложнее зла. Оттого и более уязвимо, и реже встречается.

Вот добрые числа от 0 до 2018 включительно, дальше, наверное, закономерность угадывается :) Страница статьидалее...
25.04.2018, 12:45 [155]


Ещё 16 не пригодившихся задач за апрель 2018

В продолжение предыдущей подборки из 14 задач, в апреле же 30 дней :)

Все задачи проверены в консоли Visual Studio 2015 и написаны на C++. По-прежнему материал серии не упорядочен тематически, ну, потом когда-нибудь :)

Для быстрого поиска на странице нужного слова нажмите в браузере комбинацию клавиш Ctrl+F.

1. Создать структуру колоды карт, состоящую из двух полей - переменных перечислимого типа "масть" и "старшинство". Сформировать случайную перетасовку карт для трех игроков. Страница статьидалее...
25.04.2018, 10:00 [149]


Зазвенело и забольшевело, да?

А вот что запомнилось за последние дни?

А ничего. Был, как обычно, занят попытками выжить, перемежаемыми ударами с тех именно сторон, откуда ударов и не ждёшь, т.е., типа, с "близких". Эх, и далёких тогда не надо :)

Вот счас одну новость прочитал, и той был лучше не видел.

Как был для меня Михалкович эталоном мрази, так и остался. Чистым, ничем не замутнённым.

Когда женщина, которая делала это, когда имела товарный вид, а потом, потеряв его, сказала, чтобы о ней вспомнили, это неправильно», — отметил режиссер.

С утра только писал об этом на совсем другом ресурсе: Страница статьидалее...
21.04.2018, 22:56 [114]


Старый добрый хранитель экрана "Матрица" :)

Хотя экраны беречь от "выгорания пикселов" давно не нужно, традиция осталась. А на волне популярности фильма "Матрица" мало на какую тему было написано столько же "хранителей экрана", сколько на матричную.

У меня тоже такой был. Смешно, под "семёркой" кинул случайно обнаруженный файл .scr в папку C:\Windows\System32\, вызвал Пуск - Панель управления - Персонализация - Заставка, а оно работает как ни в чём не бывало, хотя как бы годы прошли.

Жаль, исходников не сохранилось, но раз работает, не буду и .scr тереть. Размер файла 40 Кб, это вам не современные приложения-монстры :) Правда, "вывод текста из файла" так и не реализован, но в остальном даже настройки есть: Страница статьидалее...
18.04.2018, 16:25 [142]


Алгоритм Ли или конь в лабиринте

Мне был нужен просто путь коня по шахматной доске, но не вот такой, и не полный обход доски конём, а волновой алгоритм поиска пути, он же алгоритм Ли, с учётом того, что конь не может прыгать через "препятствия" на доске.

По сути, если ходить не на соседнюю клетку, а ходом коня или ещё каким, надо просто изменить принцип выбора соседних элементов при поиске свободных клеток.

Но я сегодня эту задачу уже не доделаю, некогда, а вот не-помню-откуда-взявшийся проект на C++ (консоль Visual Studio 2015), реализующий алгоритм Ли для поиска пути по лабиринту, прикреплю. Соседство клеток там стандартное для игр - вверх, направо, вниз и налево.

Этот проект я и попытался быстро применить к решению задачи.

Вот такой была исходная картинка: Страница статьидалее...
15.04.2018, 16:20 [118]


Женские шахматы выбрать или всё же машинные? :)

Да, много воды утекло с таких вот "онлайн-гроссмейстеров", сила движков всё растёт, а Стокфиш всё ещё соперничает с Комодо и Гудини.

Очередной чемпионат мира ТСЕС достиг финальной стадии, новая сборка Stockfish 260318 (рейтинг 3546) снова "делает" Houdini 6.03 (рейтинг 3489).

Вяленому хватило восьмидесяти пяти из ста партий финального матча, чтобы обыграть Houdini со счетом 50,5:34,5 (+18 - 2 = 65). Но матч будет доигрываться, сейчас, например, идёт 94-я партия :)

Женский чемпионат Европы без видео тоже как-то не смотрится, а с видео нигде не нашёл (раз, два и т.д.), не посмотреть, что ли, теперь на дам за раздумьем? :) Страница статьидалее...
15.04.2018, 00:01 [113]


14 не пригодившихся задач за 14 апреля 2018

Очередная ставшая традиционной подборка текущих учебных задач на C++, коды проверялись в консоли Visual Studio 2015, возможно, что-то и в QT 5.X.

Если вы вошли на эту страницу из поисковика, для быстрого поиска нужного слова используйте в браузере комбинацию клавиш Ctrl+F.

1. Составить массив, состоящий из индексов элементов исходного массива, отсортированного по возрастанию. Страница статьидалее...
14.04.2018, 15:07 [126]


[1-15] [16-30] [31-45] [46-60] ... [1981-1995] [1996-1997]

  свежие записипоиск по блогукомментариистатистика

Наверх Яндекс.Метрика
© PerS
вход