• Главная
  • Легоконструирование
    • Программируем
    • Рассуждения
    • Соревнования
    • Школьное объединение лего
  • Методические наработки
    • Видеоуроки
    • Готовимся к экзаменам
    • Материалы к урокам
    • Презентации
    • Работы учеников
    • Шаг в будущее
  • Прочие материалы
    • Материалы на других сайтах
    • Новости сайта
    • Разбираемся в Linux
    • Сайтостроение
    • Школьный сервер на Ubuntu Server
  • Публикации
  • Записи
  • Автор
  • Портфолио
  • Мои контакты
  • Достижения учеников
  • Карта сайта

Личный сайт Рогова Андрея: информатика, программирование и робототехника

Сайт создан для желающих познакомиться с моим опытом работы

Меню
  • Главная
  • Легоконструирование
    • Программируем
    • Рассуждения
    • Соревнования
    • Школьное объединение лего
  • Методические наработки
    • Видеоуроки
    • Готовимся к экзаменам
    • Материалы к урокам
    • Презентации
    • Работы учеников
    • Шаг в будущее
  • Прочие материалы
    • Материалы на других сайтах
    • Новости сайта
    • Разбираемся в Linux
    • Сайтостроение
    • Школьный сервер на Ubuntu Server
  • Публикации

moodle 2.8 и reCAPTCHA v2

Андрей Рогов 09.10.2018     Нет комментариев    

Система дистанционного обучения нашей школы работает на moodle 2.8

С недавнего времени Google отказался от reCAPTCHA V1, которая прекрасно работала с нашей версией moodle. А вот V2 с ней уже не работает.

В сети можно найти соответствующий трекер https://tracker.moodle.org/browse/MDL-48501

Надо изменить два файла на хостинге

/lib/form/recaptcha.php

/login/signup_form.php

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

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

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.


/**
 * recaptcha type form element
 *
 * Contains HTML class for a recaptcha type element
 *
 * @package   core_form
 * @copyright 2008 Nicolas Connault <nicolasconnault@gmail.com>
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

require_once('HTML/QuickForm/input.php');

/**
 * recaptcha type form element
 *
 * HTML class for a recaptcha type element
 *
 * @package   core_form
 * @category  form
 * @copyright 2008 Nicolas Connault <nicolasconnault@gmail.com>
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
class MoodleQuickForm_recaptcha extends HTML_QuickForm_input {

    /** @var string html for help button, if empty then no help */
    var $_helpbutton='';

    /**
     * constructor
     *
     * @param string $elementName (optional) name of the recaptcha element
     * @param string $elementLabel (optional) label for recaptcha element
     * @param mixed $attributes (optional) Either a typical HTML attribute string
     *              or an associative array
     */
    function MoodleQuickForm_recaptcha($elementName = null, $elementLabel = null, $attributes = null) {
        global $CFG, $PAGE;
        $PAGE->requires->js(new moodle_url('https://www.google.com/recaptcha/api.js'), true);
        parent::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
        $this->_type = 'recaptcha';
    }

    /**
     * Returns the recaptcha element in HTML
     *
     * @return string
     */
    function toHtml() {
        global $CFG;
        return html_writer::empty_tag('div', array('class'=>'g-recaptcha', 'data-sitekey'=> $CFG->recaptchapublickey));
    }

    /**
     * get html for help button
     *
     * @return string html for help button
     */
    function getHelpButton(){
        return $this->_helpbutton;
    }

    /**
     * Checks recaptcha response with google.
     *
     * @param string $responsestr
     * @return bool
     */
    function is_recaptcha_response_valid($responsestr) {
        global $CFG;
        require_once($CFG->libdir.'/filelib.php');

        $remoteip = getremoteaddr();
        $params = "secret={$CFG->recaptchaprivatekey}&response={$responsestr}&remoteip={$remoteip}";
        $curl = new curl();
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $response = $curl->post($url, $params);

        if ($curl->errno == 0) {
            $data = json_decode($response);

            if (isset($data->success) && $data->success == 'true') {
                return true;
            }
        }

        return false;
    }
}

Второй:

<?php

// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * User sign-up form.
 *
 * @package    core
 * @subpackage auth
 * @copyright  1999 onwards Martin Dougiamas  http://dougiamas.com
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

defined('MOODLE_INTERNAL') || die();

require_once($CFG->libdir.'/formslib.php');
require_once($CFG->dirroot.'/user/profile/lib.php');
require_once($CFG->dirroot . '/user/editlib.php');

class login_signup_form extends moodleform {
    function definition() {
        global $USER, $CFG;

        $mform = $this->_form;

        $mform->addElement('header', 'createuserandpass', get_string('createuserandpass'), '');


        $mform->addElement('text', 'username', get_string('username'), 'maxlength="100" size="12"');
        $mform->setType('username', PARAM_NOTAGS);
        $mform->addRule('username', get_string('missingusername'), 'required', null, 'server');

        if (!empty($CFG->passwordpolicy)){
            $mform->addElement('static', 'passwordpolicyinfo', '', print_password_policy());
        }
        $mform->addElement('passwordunmask', 'password', get_string('password'), 'maxlength="32" size="12"');
        $mform->setType('password', PARAM_RAW);
        $mform->addRule('password', get_string('missingpassword'), 'required', null, 'server');

        $mform->addElement('header', 'supplyinfo', get_string('supplyinfo'),'');

        $mform->addElement('text', 'email', get_string('email'), 'maxlength="100" size="25"');
        $mform->setType('email', PARAM_RAW_TRIMMED);
        $mform->addRule('email', get_string('missingemail'), 'required', null, 'server');

        $mform->addElement('text', 'email2', get_string('emailagain'), 'maxlength="100" size="25"');
        $mform->setType('email2', PARAM_RAW_TRIMMED);
        $mform->addRule('email2', get_string('missingemail'), 'required', null, 'server');

        $namefields = useredit_get_required_name_fields();
        foreach ($namefields as $field) {
            $mform->addElement('text', $field, get_string($field), 'maxlength="100" size="30"');
            $mform->setType($field, PARAM_TEXT);
            $stringid = 'missing' . $field;
            if (!get_string_manager()->string_exists($stringid, 'moodle')) {
                $stringid = 'required';
            }
            $mform->addRule($field, get_string($stringid), 'required', null, 'server');
        }

        $mform->addElement('text', 'city', get_string('city'), 'maxlength="120" size="20"');
        $mform->setType('city', PARAM_TEXT);
        if (!empty($CFG->defaultcity)) {
            $mform->setDefault('city', $CFG->defaultcity);
        }

        $country = get_string_manager()->get_list_of_countries();
        $default_country[''] = get_string('selectacountry');
        $country = array_merge($default_country, $country);
        $mform->addElement('select', 'country', get_string('country'), $country);

        if( !empty($CFG->country) ){
            $mform->setDefault('country', $CFG->country);
        }else{
            $mform->setDefault('country', '');
        }

        if ($this->signup_captcha_enabled()) {
            $mform->addElement('recaptcha', 'recaptcha_element', get_string('recaptcha', 'auth'), array('https' => $CFG->loginhttps));
            $mform->addHelpButton('recaptcha_element', 'recaptcha', 'auth');
        }

        profile_signup_fields($mform);

        if (!empty($CFG->sitepolicy)) {
            $mform->addElement('header', 'policyagreement', get_string('policyagreement'), '');
            $mform->setExpanded('policyagreement');
            $mform->addElement('static', 'policylink', '', '<a href="'.$CFG->sitepolicy.'" onclick="this.target=\'_blank\'">'.get_String('policyagreementclick').'</a>');
            $mform->addElement('checkbox', 'policyagreed', get_string('policyaccept'));
            $mform->addRule('policyagreed', get_string('policyagree'), 'required', null, 'server');
        }

        // buttons
        $this->add_action_buttons(true, get_string('createaccount'));

    }

    function definition_after_data(){
        $mform = $this->_form;
        $mform->applyFilter('username', 'trim');
    }

    function validation($data, $files) {
        global $CFG, $DB;
        $errors = parent::validation($data, $files);

        $authplugin = get_auth_plugin($CFG->registerauth);

        if ($DB->record_exists('user', array('username'=>$data['username'], 'mnethostid'=>$CFG->mnet_localhost_id))) {
            $errors['username'] = get_string('usernameexists');
        } else {
            //check allowed characters
            if ($data['username'] !== core_text::strtolower($data['username'])) {
                $errors['username'] = get_string('usernamelowercase');
            } else {
                if ($data['username'] !== clean_param($data['username'], PARAM_USERNAME)) {
                    $errors['username'] = get_string('invalidusername');
                }

            }
        }

        //check if user exists in external db
        //TODO: maybe we should check all enabled plugins instead
        if ($authplugin->user_exists($data['username'])) {
            $errors['username'] = get_string('usernameexists');
        }


        if (! validate_email($data['email'])) {
            $errors['email'] = get_string('invalidemail');

        } else if ($DB->record_exists('user', array('email'=>$data['email']))) {
            $errors['email'] = get_string('emailexists').' <a href="forgot_password.php">'.get_string('newpassword').'?</a>';
        }
        if (empty($data['email2'])) {
            $errors['email2'] = get_string('missingemail');

        } else if ($data['email2'] != $data['email']) {
            $errors['email2'] = get_string('invalidemail');
        }
        if (!isset($errors['email'])) {
            if ($err = email_is_not_allowed($data['email'])) {
                $errors['email'] = $err;
            }

        }

        $errmsg = '';
        if (!check_password_policy($data['password'], $errmsg)) {
            $errors['password'] = $errmsg;
        }

        // BEGIN moodle.org hack (MDLSITE-3878)
        if ($this->signup_captcha_enabled()) {
            $recaptcha_element = $this->_form->getElement('recaptcha_element');
            if (!empty($this->_form->_submitValues['g-recaptcha-response'])) {
                $response = $this->_form->_submitValues['g-recaptcha-response'];
                if (!$recaptcha_element->is_recaptcha_response_valid($response)) {
                    $errors['recaptcha_element'] = get_string('invaliddata', 'error');
                }
            } else {
                $errors['recaptcha_element'] = get_string('missingrecaptchachallengefield');
            }
        }
        // END moodle.org hack (MDLSITE-3878)
        // Validate customisable profile fields. (profile_validation expects an object as the parameter with userid set)
        $dataobject = (object)$data;
        $dataobject->id = 0;
        $errors += profile_validation($dataobject, $files);

        return $errors;

    }

    /**
     * Returns whether or not the captcha element is enabled, and the admin settings fulfil its requirements.
     * @return bool
     */
    function signup_captcha_enabled() {
        global $CFG;
        return !empty($CFG->recaptchapublickey) && !empty($CFG->recaptchaprivatekey) && get_config('auth/email', 'recaptcha');
    }

}

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

После этого reCAPTCHA v2 будет работать и дальше защищать сайт от нежелательный комментариев и регистраций.

Публикации Сайтостроение
moodleСайт

 Предыдущая запись

Готовимся к ЕГЭ по информатике. Системы счисления. Решение задания №16. Часть 3

― 29.09.2018

Следующая запись 

Базовый вариант ОГЭ 2018

― 13.11.2018

Автор: Андрей Рогов

Related Articles

Андрей Рогов ― 04.05.2022 | Нет комментариев

Обновление SSL сертификата вручную с помощью certbot

В связи с тем, что многие компании закрывают свои ресурсы для жителей России (как это случилось с GoGetSSL, где я

Андрей Рогов ― 30.04.2020 | Нет комментариев

Чтение аргументов командной строки в coderunner (moodle plugin) для Python 3

Андрей Рогов ― 24.07.2016 | Нет комментариев

Новый проект andrewson.ru

Андрей Рогов ― 03.02.2016 | Нет комментариев

Анализ входящих ссылок

Андрей Рогов ― 30.12.2015 | Нет комментариев

Итоги 2015 года

Андрей Рогов ― 29.08.2014 | Нет комментариев

Общероссийский рейтинг школьных сайтов. История участия по настоящее время.

Андрей Рогов ― 05.05.2014 | Нет комментариев

Использование сервиса “Яндекс.Фотки” для размещения изображений на сайте

Андрей Рогов ― 27.02.2014 | Нет комментариев

Электронная запись в первый класс с помощью Google Docs

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Поиск по сайту

Версия для слабовидящих

Версия для слабовидящих

Записи

  • ► 2022 (10)
    • ► Май (1)
      • Обновление SSL сертификата вручную с помощью certbot
    • ► Март (3)
      • Анализ результатов и разбор пробника от 01.02.2022
      • Как установить Python на Windows
      • Базовый ЕГЭ по информатике. Задание 4
    • ► Февраль (5)
      • ОГЭ по информатике. Задание 14
      • Разбор задачи 4909 (Задание 18) с сайта К.Ю. Полякова
      • Разбор задачи 4905 (Задание 18) с сайта К.Ю. Полякова
      • Базовый ЕГЭ по информатике. Задание 11. Кодирование информации
      • Базовый ЕГЭ по информатике. Задание 10. Поиск в текстовом процессоре
    • ► Январь (1)
      • ОГЭ по информатике. Задание 13.2
  • ► 2021 (37)
    • ► Декабрь (11)
      • Анализ результатов и разбор заданий пробного ЕГЭ от 15.12.2021 от /dev/inf
      • Задание 26 из работы Статград от 17.12.2021. Формат "Дорешай"
      • Базовый ЕГЭ по информатике. Задание 2. Таблицы истинности
      • ОГЭ по информатике 2022. Задание 13.1
      • ОГЭ по информатике 2022. Задание 12
      • Разбор Статград 27.10.2021. Вариант 1. Подробное решение заданий 24-27
      • Разбор Статград 27.10.2021. Вариант 1. Подробное решение заданий 1-23
      • Базовый ЕГЭ по информатике. Задание 13. Пути в графе
      • Базовый ЕГЭ по информатике. Что это за курс
      • Разбор задачи 4406 с сайта К.Ю. Полякова
      • ОГЭ по информатике. Задание 11
    • ► Октябрь (2)
      • Способы решения заданий ЕГЭ. Таблица с рекомендациями
      • Модуль CSV языка Python в решении задания 3 ЕГЭ по информатике
    • ► Сентябрь (1)
      • Разбор заданий демоверсии ЕГЭ по информатике 2022
    • ► Июль (7)
      • ЕГЭ по информатике 2021. Задание 27. Метод минимальной разности
      • ЕГЭ по информатике 2021. Задание 27. Метод частичных сумм
      • ЕГЭ по информатике 2021. Задание 27. Метод полных сумм
      • ЕГЭ по информатике 2021. Возможна ли автопроверка заданий на программирование на экзамене?
      • ЕГЭ по информатике 2021. Задания 19-21. Решение программированием на Python
      • ЕГЭ по информатике 2021. Задание 15. Решение программированием на Python
      • ЕГЭ по информатике 2021. Задание 8. Решение программированием на Python с помощью модуля itertools
    • ► Июнь (1)
      • Решение задания 23 в электронных таблицах с помощью функции ИНДЕКС
    • ► Май (5)
      • ЕГЭ по информатике 2021. Решение 23 задания в электронных таблицах в одну формулу
      • Разбор контрольной работы (ОГЭ) от 18.05.2021 по информатике
      • Контрольная работа (ОГЭ) 2021 по информатике. Экспресс-подготовка. Решаем вариант
      • Задание 25. Обработка целых чисел. Делимость
      • Coderunner (moodle plugin) и PascalABC в multilanguage question (Часть 2)
    • ► Апрель (1)
      • ЕГЭ по информатике 2021. Задание 2. Таблицы истинности. Решение программированием на Python
    • ► Март (6)
      • Задание 23 ЕГЭ по информатике. Решение программированием
      • Задание 23 ЕГЭ по информатике. Решение в электронных таблицах
      • Задание 23 ЕГЭ по информатике. Решение деревом
      • Режимы работы интерпретатора Python
      • Электронные таблицы и системы счисления (функция ОСНОВАНИЕ)
      • Модуль itertools для решения задания 8 ЕГЭ по информатике
    • ► Февраль (3)
      • Кумир и новые версии ubuntu
      • Выбираем онлайн whiteboard
      • Установка компилятора python 3 на компьютер
  • ► 2020 (50)
    • ► Декабрь (9)
      • ОГЭ по информатике 2021 Задание 10
      • ОГЭ по информатике 2021 Задание 9
      • ОГЭ по информатике 2021 Задание 8
      • ОГЭ по информатике 2021 Задание 7
      • ОГЭ по информатике 2021 Задание 6
      • ОГЭ по информатике 2021 Задание 5
      • ОГЭ по информатике 2021 Задание 4
      • ОГЭ по информатике 2021 Задание 3
      • ОГЭ по информатике 2021 Задание 2
    • ► Октябрь (4)
      • ОГЭ по информатике 2021 Задание 1
      • КЕГЭ 2021. Графы. Задания 1 и 13
      • ОГЭ 2021. Как проходит. Разбор Демо 2021
      • Обзор изменений в процедуре сдачи ЕГЭ по информатике (КЕГЭ)
    • ► Август (2)
      • Компьютеры на КЕГЭ. Откуда?
      • КЕГЭ 2021. Сравнение заданий с 2020
    • ► Июнь (18)
      • Python 3. Списки 3. Сравнение списков и строк. Ссылочная адресация
      • Python 3. Списки 2. Поиск количества, суммы, произведения, минимума и максимума элементов
      • Python 3. Списки 1. Способы создания
      • Pascal. Массивы. Алгоритмы работы с массивами
      • Pascal. Массивы. Заполнение массива. Вывод массива
      • Информатика. Примеры решения задания ЕГЭ 25 на Python
      • Физика. Соединения конденсаторов
      • Физика. Электроемкость конденсатора
      • Физика. Электроемкость уединенного проводника
      • Физика. Потенциал и напряженность системы из шара и сферы (двух сфер)
      • Физика. Связь напряженности и потенциала
      • Физика. Электрические заряды, помещенные в диэлектрик
      • Физика. Проводники в электростатическом поле
      • Физика. Диэлектрики в электростатическом поле
      • Физика. Электрическое поле в веществе
      • Физика. Потенциал электростатического поля
      • Физика. Работа сил электростатического поля
      • Физика. Напряженность электростатического поля
    • ► Май (2)
      • TRIK Studio. Задание на измерение глубины речного дна
      • TRIK Studio. Исполнитель Робот
    • ► Апрель (2)
      • Чтение аргументов командной строки в coderunner (moodle plugin) для Python 3
      • Coderunner (moodle plugin) и PascalABC в multilanguage question
    • ► Март (2)
      • Демоверсия ОГЭ 2020 по информатике. Задание 12
      • Демоверсия ОГЭ 2020 по информатике. Задание 11
    • ► Январь (11)
      • Демоверсия ОГЭ 2020 по информатике. Задание 10
      • Демоверсия ОГЭ 2020 по информатике. Задание 9
      • Демоверсия ОГЭ 2020 по информатике. Задание 8
      • Демоверсия ОГЭ 2020 по информатике. Задание 7
      • Демоверсия ОГЭ 2020 по информатике. Задание 6
      • Демоверсия ОГЭ 2020 по информатике. Задание 5
      • Демоверсия ОГЭ 2020 по информатике. Задание 4
      • Демоверсия ОГЭ 2020 по информатике. Задание 3
      • Демоверсия ОГЭ 2020 по информатике. Задание 2
      • Демоверсия ОГЭ 2020 по информатике. Задание 1
      • Сравнение старой и новой моделей ОГЭ по информатике
  • ► 2019 (24)
    • ► Август (5)
      • Решение варианта повышенного уровня ОГЭ. 5 задание
      • Решение варианта повышенного уровня ОГЭ. 4 задание
      • Решение варианта повышенного уровня ОГЭ. 3 задание
      • Решение варианта повышенного уровня ОГЭ. 2 задание
      • Решение варианта повышенного уровня ОГЭ. 1 задание
    • ► Июнь (11)
      • Решение варианта базового уровня ОГЭ. Все задания
      • Решение варианта базового уровня ОГЭ. Задание 18
      • Решение варианта базового уровня ОГЭ. Задание 17
      • Решение варианта базового уровня ОГЭ. Задание 16
      • Решение варианта базового уровня ОГЭ. Задание 15
      • Решение варианта базового уровня ОГЭ. Задание 14
      • Решение варианта базового уровня ОГЭ. Задание 13
      • Решение варианта базового уровня ОГЭ. Задание 12
      • Решение варианта базового уровня ОГЭ. Задание 11
      • Решение варианта базового уровня ОГЭ. Задание 10
      • Решение варианта базового уровня ОГЭ. Задание 9
    • ► Март (3)
      • Решение варианта базового уровня ОГЭ. Задание 8
      • Решение варианта базового уровня ОГЭ. Задание 7
      • Решение варианта базового уровня ОГЭ. Задание 6
    • ► Февраль (5)
      • Решение варианта базового уровня ОГЭ. Задание 5
      • Решение варианта базового уровня ОГЭ. Задание 4
      • Решение варианта базового уровня ОГЭ. Задание 3
      • Решение варианта базового уровня ОГЭ. Задание 2
      • Решение варианта базового уровня ОГЭ. Задание 1
  • ► 2018 (10)
    • ► Ноябрь (1)
      • Базовый вариант ОГЭ 2018
    • ► Октябрь (1)
      • moodle 2.8 и reCAPTCHA v2
    • ► Сентябрь (4)
      • Готовимся к ЕГЭ по информатике. Системы счисления. Решение задания №16. Часть 3
      • Готовимся к ЕГЭ по информатике. Системы счисления. Решение задания №16. Часть 2
      • Готовимся к ЕГЭ по информатике. Системы счисления. Решение задания №16. Часть 1
      • Готовимся к ЕГЭ по информатике. Системы счисления. Решение задания №1
    • ► Август (1)
      • Видео. Ответы на вопросы по 9 заданию ОГЭ по информатике.
    • ► Июль (1)
      • Видео. Ответы на вопросы по 3 заданию ОГЭ по информатике.
    • ► Май (1)
      • Готовимся к ЕГЭ по информатике. Системы счисления [5/5]. Некоторые свойства чисел
    • ► Апрель (1)
      • Готовимся к ЕГЭ по информатике. Системы счисления [4/5]. Перевод между 2, 8, 16
  • ► 2017 (14)
    • ► Декабрь (1)
      • Готовимся к ЕГЭ по информатике. Системы счисления [3/5]. Перевод между недесятичными СС
    • ► Ноябрь (1)
      • Список практических работ по графическому редактору GIMP
    • ► Август (2)
      • Готовимся к ЕГЭ по информатике. Системы счисления [2/5]. Перевод в десятичную систему счисления
      • Готовимся к ЕГЭ по информатике. Системы счисления [1/5]. Перевод из десятичной системы счисления
    • ► Июнь (2)
      • EV3 + Python = ev3dev. Часть 1.1 Где еще писать код.
      • EV3 + Python = ev3dev. Часть 1. Где писать код.
    • ► Май (5)
      • Подготовка к средней основной категории WRO 2017
      • ОГЭ по информатике. Ответы на вопросы. Кузнечик и IP адрес.
      • ОГЭ по информатике. Как оценивается 20 задание
      • ОГЭ по информатике. Как оценивается 19 задание
      • Scratch + WeDo 1. Что нужно, чтобы заработало.
    • ► Апрель (1)
      • ОГЭ информатика. Решение задания 2 с помощью таблиц истинности
    • ► Март (1)
      • Подготовка к соревнованиям Робофест "Hello Robot Сортировщик 2017"
    • ► Февраль (1)
      • Доска Smart Board SB480 в Debian 7
  • ► 2016 (26)
    • ► Декабрь (1)
      • Готовимся к ЕГЭ. 1.1. Системы счисления. Теория.
    • ► Ноябрь (1)
      • Открытие групп в социальных сетях для подготовки к ГИА по информатике
    • ► Октябрь (1)
      • Почта Яндекс в белом списке squid
    • ► Сентябрь (1)
      • PencilCode для старшеклассников - 1
    • ► Июль (1)
      • Новый проект andrewson.ru
    • ► Июнь (1)
      • WRO 2016 Всероссийский этап
    • ► Апрель (2)
      • Scratch. Работа №1. Перемещения персонажа и перо
      • Городской фестиваль технического творчества учащихся 2016
    • ► Март (3)
      • Подготовка к ОГЭ по информатике. Задание 20.2.
      • Подготовка к ОГЭ по информатике. Задание 20.1.
      • Итоги Робофест-Южный Урал
    • ► Февраль (5)
      • Подготовка к ОГЭ по информатике. Задание 19.
      • Подготовка к ОГЭ по информатике. Особенности второй части экзамена
      • Анализ входящих ссылок
      • Подготовка к ОГЭ по информатике. 18 задание.
      • Подготовка к ОГЭ по информатике. 17 задание.
    • ► Январь (10)
      • Подготовка к ОГЭ по информатике. 16 задание.
      • Подготовка к ОГЭ по информатике. 15 задание.
      • Подготовка к ОГЭ по информатике. 14 задание.
      • Подготовка к ОГЭ по информатике. 13 задание.
      • Подготовка к ОГЭ по информатике. 12 задание.
      • Подготовка к ОГЭ по информатике. 11 задание.
      • Подготовка к ОГЭ по информатике. 10 задание.
      • Подготовка к ОГЭ по информатике. 9 задание.
      • Подготовка к ОГЭ по информатике. 8 задание.
      • Подготовка к ОГЭ по информатике. 7 задание.
  • ► 2015 (20)
    • ► Декабрь (7)
      • Итоги 2015 года
      • Подготовка к ОГЭ по информатике. 6 задание.
      • Подготовка к ОГЭ по информатике. 5 задание.
      • Подготовка к ОГЭ по информатике. 4 задание.
      • Подготовка к ОГЭ по информатике. 3 задание.
      • Подготовка к ОГЭ по информатике. 2 задание.
      • Подготовка к ОГЭ по информатике. 1 задание.
    • ► Ноябрь (1)
      • Подготовка к ОГЭ по информатике. 0 урок. Нормативные документы, структура экзамена.
    • ► Август (2)
      • Контроль ученических компьютеров с помощью Epoptes
      • Городской конкурс анимированных историй, разработанных в среде Scratch по теме "Литературная страна" - 2015
    • ► Июнь (1)
      • WRO 2015. Дорога до Казани.
    • ► Май (3)
      • П-регулятор в LEGO® MINDSTORMS® EV3
      • Рейтинг сайтов учителей "Зима 2015"
      • Конкурс "Учитель года - 2015". Областной этап.
    • ► Март (2)
      • "Стандартные" алгоритмы языка Паскаль
      • Конкурс "Учитель года - 2015" Муниципальный этап.
    • ► Январь (4)
      • Реализация аспектов образовательного проекта "ТЕМП" средствами практико-ориентированного подхода к изучению информатики
      • Робофест-Южный Урал 2015
      • Итоги муниципального этапа "Робофест - Урал 2015" г.Челябинск
      • Участие в соревнованиях "Гонки роботов"
  • ► 2014 (33)
    • ► Декабрь (2)
      • Школьные соревнования "Биатлон Мини" 20 декабря 2014
      • Открытый урок "Цикл с условием"
    • ► Ноябрь (2)
      • Конкурс "Новые проекты из старых журналов"
      • Семинары по программе "Робототехника" - ресурсные центры НКО
    • ► Октябрь (2)
      • Стопоходящая машина Чебышева. Способ реализации.
      • WeDo - нет заданий в "Первые шаги" и "ActivityTab"
    • ► Август (2)
      • Общероссийский рейтинг школьных сайтов. История участия по настоящее время.
      • Конспект занятия "Плавное движение по черной линии"
    • ► Июль (3)
      • Соревнования "Кегельринг"
      • Участие в конкурсе анимированных историй в Scratch
      • Автоматическая парковка с конструктором лего
    • ► Июнь (1)
      • Ремонт экрана NXT своими руками
    • ► Май (4)
      • Занимательное программирование на Паскале 3. Математические "фокусы".
      • Занимательное программирование на Паскале 2. Игра “Однорукий бандит”.
      • Занимательное программирование на Паскале 1. Игра "Угадай число".
      • Использование сервиса "Яндекс.Фотки" для размещения изображений на сайте
    • ► Апрель (3)
      • Scratch 2.0 в Linux
      • Приложения для мобильных устройств, полезные для информатики и ЕГЭ
      • Участие в соревнованиях "Захват флага", или история одной судейской ошибки
    • ► Март (3)
      • Готовимся к WRO 2014. Спутник. Распознаем цвет спутника
      • Программа для соревнования "Биатлон" в NXT-G
      • Проведение пробного ЕГЭ по информатике
    • ► Февраль (2)
      • Электронная запись в первый класс с помощью Google Docs
      • Монитор + проектор на Ubuntu 10.04
    • ► Январь (9)
      • Алгоритм плавного движения по черной линии 3. Программирование в NXT-G
      • Алгоритм плавного движения по черной линии 2. Математика
      • Алгоритм плавного движения по черной линии 1. Конструирование
      • Окружные отборочные соревнования Робофест-Урал 2014
      • Создание космоса
      • Круглая кнопка в стиле web 2.0.
      • Новогодние обои
      • Светящийся текст 2
      • Светящийся текст
  • ► 2013 (64)
    • ► Декабрь (13)
      • Исследовательская деятельность в сфере информационных технологий (из опыта работы).
      • Среднее значение показаний датчика в NXT-G
      • Общее понятие о слоях. Панель слоев. Создание слоя. - Практическая часть - Упражнение 3
      • Общее понятие о слоях. Панель слоев. Создание слоя. - Практическая часть - Упражнение 4
      • Общее понятие о слоях. Панель слоев. Создание слоя. - Практическая часть - Упражнение 2
      • Общее понятие о слоях. Панель слоев. Создание слоя - Теоретическая часть
      • Общее понятие о слоях. Панель слоев. Создание слоя. - Практическая часть - Упражнение 1
      • Работа с выделенными областями - Практическая часть - Упражнение 2
      • Работа с выделенными областями - Практическая часть - Упражнение 3
      • Работа с выделенными областями - Практическая часть - Упражнение 1
      • Работа с выделенными областями - Теоретическая часть
      • Знакомство с Gimp - Практическая часть - Упражнение 2
      • Знакомство с Gimp - Практическая часть - Упражнение 1
    • ► Ноябрь (7)
      • Итоги Робофест-Урал 2013 (квалификация от 28 ноября)
      • Шаг в будущее. Развивающая программа "Черный ящик"
      • Шаг в будущее. Моделирование опыта по изучению силы упругости.
      • Что такое программа "Шаг в будущее"?
      • Итоги "Всероссийского конкурсе образовательных сайтов "Педагогический рейтинг рунета"
      • Электронный документооборот в школе: теория и реальность
      • Семинары First Lego Ligue в Новосибирске и Томске
    • ► Октябрь (3)
      • Пароль на запуск программы в Linux
      • Виртуальная машина на Ubuntu Server 12.04 с веб-сайтом
      • Кроссплатформенный аудиоплеер
    • ► Сентябрь (6)
      • Школьный сервер. Часть 7. Раздача интернета и DHCP сервер.
      • Школьный сервер. Часть 8. SSH сервер.
      • Планирование кружка "Легоконструирование" на 4 года (2 занятия в неделю)
      • Школьный сервер. Часть 6. Webmin.
      • Школьный сервер. Часть 5. Графический интерфейс.
      • Общероссийский рейтинг образовательных сайтов за лето 2013 года.
    • ► Август (6)
      • Подбор страниц, связанных с интерактивной доской
      • Репост. Интересная статья "Дети не умеют пользоваться компьютерами… И вот почему это должно вас беспокоить"
      • Школьный сервер. Часть 4. Установка серверной ОС.
      • Школьный сервер. Часть 3. Исходные данные.
      • Школьный сервер. Часть 2. Выбор дистрибутива и ПО
      • Школьный сервер. Часть 1. Задачи школьного сервера.
    • ► Июль (2)
      • Летний лагерь. Соревнования.
      • Летний лагерь. Подготовка к соревнованиям.
    • ► Июнь (8)
      • Летний лагерь. День шестой.
      • Летний лагерь. День пятый.
      • Летний лагерь. День четвертый.
      • Плагины моего сайта
      • И снова новый хостинг
      • Летний лагерь. День третий
      • Летний лагерь. День второй.
      • Летний лагерь. День первый.
    • ► Май (4)
      • Настройка веб-сервера на основе Linux Mint
      • Задачи на логику
      • Дистанционное управление NXT через Bluetooth
      • Установка Lego Mindstorm NXT на Windows Starter (обновление)
    • ► Апрель (8)
      • Подборка видео про Сумо лего-роботов
      • Биатлон Лего-роботов
      • Кегельринг. Анализ задания. Практические наброски.
      • Разбор C4 25 апреля
      • Создание страницы (записи) в wordpress с подключением jQuery
      • Участие в XVII Олимпиаде технического творчества учащихся (робототехническое направление)
      • Подготовка к V городскому фестивалю технического творчества
      • Муниципальный этап WRO 2013 г.Челябинск
    • ► Март (5)
      • Городской этап WRO Челябинск
      • Робот для WRO Баробудур
      • Сайты, связанные с Лего
      • Виджеты со 101widgets.com
      • Новый хостинг
    • ► Февраль (2)
      • First Lego Ligue
      • Hello Robot
  • ► 2012 (38)
    • ► Декабрь (2)
      • Transport Tycoon Deluxe на Linux, или Open TTD
      • Уменьшаем шок от перехода на Linux
    • ► Ноябрь (2)
      • Планирование кружка Лего (210 часов)
      • Установка Lego Mindstorm NXT 2.0 на Windows 7 Starter
    • ► Октябрь (1)
      • Различные программы для использования в образовании
    • ► Сентябрь (10)
      • Практические работы по моделированию
      • "Соло на клавиатуре" for Linux (перепост)
      • Информация и информационные процессы
      • Общие сведения об установке
      • Разбиение дисков при установке
      • Запрет на создание файлов и папок на рабочем столе
      • Снятие скриншотов в Росинке
      • Настройка беспроводной сети в Linux "Росинка"
      • Внешний вид десктопа
      • Выбор ОС для ОУ
    • ► Июнь (1)
      • Сатира
    • ► Май (3)
      • Лабораторная работа "Создание презентации с использованием гиперссылок в LibreOffice.org Impress"
      • Какие плагины wordpress я использую
      • Почему Wordpress?
    • ► Апрель (11)
      • Статья "Организация исследовательской деятельности учащихся на элективных занятиях по физике в старшей профильной школе"
      • Презентация "Ребусы"
      • Конспект урока на тему "Анализ статистической обработки данных"
      • Программа элективного курса "Компьютерная графика"
      • Облачное хранение файлов на Яндекс.Диск
      • Moodle в школе
      • Домашнее задание по алгебре логики
      • По следам контрольных работ
      • Записки пользователя Linux
      • Проектная работа "Свой сайт"
      • HTML-редактор под Linux
    • ► Март (1)
      • Размышления о СПО
    • ► Февраль (1)
      • Материалы по HTML
    • ► Январь (6)
      • Фантастическое произведение "Школа будущего"
      • Какой я вижу школу будущего
      • Завершился районный конкурс "Учитель года-2012"
      • Файлы и файловая система
      • История языка гипертекстовой разметки HTML
      • Презентация по теме "Алгоритмизация и программирование"
  • ► 2011 (8)
    • ► Декабрь (6)
      • Собственный опыт использования ОС Linux
      • Самостоятельная работа по теме "Перевод чисел из одной системы счисления в другую"
      • Программа кружка "Мастерская лего"
      • Шаги перехода на ПСПО
      • Информационные процессы
      • Моя педагогическая философия
    • ► Ноябрь (1)
      • Виртаульная лабораторная работа "Определение плотности газа"
    • ► Сентябрь (1)
      • Виртуальная лабораторная работа "Определение силы упругости"

Последние записи

  • Обновление SSL сертификата вручную с помощью certbot 04.05.2022
  • Анализ результатов и разбор пробника от 01.02.2022 31.03.2022
  • Как установить Python на Windows 31.03.2022
  • Базовый ЕГЭ по информатике. Задание 4 31.03.2022
  • ОГЭ по информатике. Задание 14 23.02.2022

Метки

GIMP HTML Lego Linux NXT NXT-G python Python 3 Scratch WRO Биатлон Видео Видеоурок ГИА Графика ЕГЭ Информатика КЕГЭ Конкурс Конспект урока Лего Линукс ОГЭ ПСПО Паскаль Практическая работа Презентация Программирование Публикация Работы учеников Робофест СПО Сайт Сервер Соревнования Физика ЦОР Шаг в будущее Школа будущего Экзамен Эссе кружок планирование практические работы справочная информация

Карта посещений

Locations of visitors to this page

Статистика

Яндекс.Метрика

Победитель конкурса


Педагогический рейтинг рунета 2013

RU-CENTER

Проект при поддержке компании RU-CENTER

Рейтинг сайтов

Участник Общероссийского рейтинга образовательных сайтов

Участник проекта

Образование и обучение
Наш сайт в каталоге manyweb.ru Рейтинг образовательных сайтов mega-talant.com
Copyright © Andrew Rogov