[phpBB Debug] PHP Notice: in file /viewtopic.php on line 981: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.
[phpBB Debug] PHP Notice: in file /viewtopic.php on line 981: getdate(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4183: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4185: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4186: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4187: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
Chaos and Correlation • Просмотр темы - JAVA
Страница 2 из 5

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 3:24 am
Eugene Lutsenko
В системе Эйдос JavaScript (не JAVA) используется с конца 2016 года: http://lc.kubagro.ru/aidos/Presentation ... online.pdf
Это делается для обработки информации на стороне ftp-сервера (на host) и визуализации мест обращения к системе Эйдос на карте мира. Картографическая визуализация мест расположения пользователей, запускавших систему «Эйдос»: http://aidos.byethost5.com/map3.php (уникальные IP-адреса, только метки), http://aidos.byethost5.com/map4.php (уникальные IP-адреса, метки с надписями), http://aidos.byethost5.com/map5.php (все IP-адреса, кластеры).
Код: Выделить всё
<!DOCTYPE html>
<html>
<head>
<?php
$content = file_get_contents("map3_strings.txt");
$content = explode("\r\n",$content);
foreach ($content as $key=>$record) {
   $content[$key] = explode(",", $record);
}

?>
<meta charset="utf-8">
<title>AIDOS map</title>
<link href="styles.css" rel="stylesheet" type="text/css">

<meta name="viewport" content="width=device-width, initial-scale = 1.0, user-scalable = no">
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<script type="text/javascript">
    var aMap;
       
    ymaps.ready(function(){
        aMap = new ymaps.Map("main", {
            center: [29.00, 7.00],
            zoom: 3.3
        });
        aMap.container.fitToViewport();
      
      // Создаем геообъект с типом геометрии "Точка".
        gObj = new ymaps.GeoObject({
            // Описание геометрии.
            geometry: {
                type: "Point",
                coordinates: [<?=$content[0][10];?>, <?=$content[0][11];?>]
            },
            // Свойства.
            properties: {
                // Контент метки.
                // iconContent: '<?=$content[0][0].", ".$content[0][1];?>',
                // hintContent: '<?=$content[0][2];?>'
            hintContent: '<?=$content[0][0].", ".$content[0][1];?>: <?=$content[0][2];?>'
            }
        }, {
            // Опции.
            // Иконка метки будет растягиваться под размер ее содержимого.
            // preset: 'islands#blackStretchyIcon',
         preset: 'islands#icon',
        });
      aMap.geoObjects
        .add(gObj)
      <?php
         for ($i = 1; $i<count($content);$i++){
            echo ".add(new ymaps.Placemark([" . $content[$i][10].",".$content[$i][11]."], {";
            //echo " iconContent: '".$content[$i][0].", ".$content[$i][1]."',";
            //echo " hintContent: '".$content[$i][2]."'}, {  preset: 'islands#blackStretchyIcon' }))";
            //echo " iconContent: '".$content[$i][0].", ".$content[$i][1]."',";
            echo " hintContent: '" . $content[$i][0].", ".$content[$i][1]. ": ".$content[$i][2]."'},
                  {  preset: 'islands#icon' }))";
         
         }
      
      ?>
   
   });
   
</script>
</head>
<body>
<div id="wrapper">
   <div id="main">
      
   
   </div>

</div>


<script>

</script>
</body>
</html>


Код: Выделить всё
<?php
$content = file_get_contents("test_strings.txt");
$content = explode("\r\n",$content);
foreach ($content as $key=>$record) {
    $content[$key] = explode(",", $record);
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>AIDOS map</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=cd8ea9fa-fe7f-4372-b657-4ebabd18118d" type="text/javascript"></script>
    <script type="text/javascript">
            ymaps.ready(function () {
            var myMap = new ymaps.Map('map', {
                    center: [0, 0],
                    zoom: 1,
                    behaviors: ['default', 'scrollZoom'],
                }, {
                    searchControlProvider: 'yandex#search'
                }),
                /**
                 * Создадим кластеризатор, вызвав функцию-конструктор.
                 * Список всех опций доступен в документации.
                 * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#constructor-summary
                 */
                    clusterer = new ymaps.Clusterer({
                    /**
                     * Через кластеризатор можно указать только стили кластеров,
                     * стили для меток нужно назначать каждой метке отдельно.
                     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/option.presetStorage.xml
                     */
                    preset: 'islands#invertedVioletClusterIcons',
                    /**
                     * Ставим true, если хотим кластеризовать только точки с одинаковыми координатами.
                     */
                    groupByCoordinates: false,
                    /**
                     * Опции кластеров указываем в кластеризаторе с префиксом "cluster".
                     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark.xml
                     */
                    clusterDisableClickZoom: true,
                    clusterHideIconOnBalloonOpen: false,
                    geoObjectHideIconOnBalloonOpen: false
                }),
                /**
                 * Функция возвращает объект, содержащий данные метки.
                 * Поле данных clusterCaption будет отображено в списке геообъектов в балуне кластера.
                 * Поле balloonContentBody - источник данных для контента балуна.
                 * Оба поля поддерживают HTML-разметку.
                 * Список полей данных, которые используют стандартные макеты содержимого иконки метки
                 * и балуна геообъектов, можно посмотреть в документации.
                 * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
                 */
                    getPointData = function (index) {
                    return {
                        balloonContentHeader: '<font size=3><b>Метка №'+index+'</b></font>',
                        balloonContentBody: '<p>Дата посещения: '+times[index]+'</p><p>Местоположение: '+ips[index]+'</p>',
                        clusterCaption: 'Метка №<strong>' + index + '</strong>'
                    };
                },
                /**
                 * Функция возвращает объект, содержащий опции метки.
                 * Все опции, которые поддерживают геообъекты, можно посмотреть в документации.
                 * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
                 */
                    getPointOptions = function () {
                    return {
                        preset: 'islands#violetIcon',
                        balloonMaxWidth: 300

                    };
                },

                //Массив точек
                points = [
                <?php
                        for ($i = 1; $i<count($content);$i++){
                            if(($content[$i][10]=="" || $content[$i][10]=="Unknown" ) || ($content[$i][11]=="" || $content[$i][11]=="Unknown"))
                                continue;
                            echo "[" . $content[$i][10].",".$content[$i][11]."],";                     
                        }
                   
                    ?>
                    ],

                //Массив дат посещения
                times = [
                <?php
                    for ($i = 1; $i<count($content);$i++){
                            if(($content[$i][10]=="" || $content[$i][10]=="Unknown" ) || ($content[$i][11]=="" || $content[$i][11]=="Unknown"))
                            continue;
                        echo '["' . $content[$i][0]." - ".$content[$i][1].'"],';                     
                    }
               
                ?>
                ],

                //Массив местоположений
                ips = [
                <?php
                    for ($i = 1; $i<count($content);$i++){
                            if(($content[$i][10]=="" || $content[$i][10]=="Unknown" ) || ($content[$i][11]=="" || $content[$i][11]=="Unknown"))
                            continue;
                        echo '["' . $content[$i][2].' - '.$content[$i][6].' - '.$content[$i][7].'"],';                     
                    }
               
                ?>
                ],
                geoObjects = [];

            /**
             * Данные передаются вторым параметром в конструктор метки, опции - третьим.
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Placemark.xml#constructor-summary
             */
            for(var i = 0, len = points.length; i < len; i++) {
                geoObjects[i] = new ymaps.Placemark(points[i], getPointData(i), getPointOptions());
            }

            /**
             * Можно менять опции кластеризатора после создания.
             */
            clusterer.options.set({
                gridSize: 80,
                clusterDisableClickZoom: true
            });

            /**
             * В кластеризатор можно добавить javascript-массив меток (не геоколлекцию) или одну метку.
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#add
             */
            clusterer.add(geoObjects);
            myMap.geoObjects.add(clusterer);

            /**
             * Спозиционируем карту так, чтобы на ней были видны все объекты.
             */

            myMap.setBounds(clusterer.getBounds(), {
                checkZoomRange: true
            });
        });
    </script>
    <style>
        html, body, #map {
            width: 100%; height: 100%; padding: 0; margin: 0;
        }
        a {
            color: #04b; /* Цвет ссылки */
            text-decoration: none; /* Убираем подчеркивание у ссылок */
        }
        a:visited {
            color: #04b; /* Цвет посещённой ссылки */
        }
        a:hover {
            color: #f50000; /* Цвет ссылки при наведении на нее курсора мыши */
        }
    </style>
</head>
<body>
<div id="map"></div>
</body>
</html>

А для определения IP-адресов пользователей системы Эйдос используется PHP. Он приведен здесь: http://lc.kubagro.ru/aidos/Presentation ... online.pdf

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 3:31 am
Eugene Lutsenko
Natalia писал(а):https://vk.com/topic-111905078_34027481
хорошая подборка книг, есть даже несколько для детей.

вроде не сложно написано
https://vertex-academy.com/tutorials/ru ... 0751953125

Да, очень хорошая подборка. Есть даже для детей, бабушек и дедушек, т.е. прямо для меня: https://vk.com/doc26879026_437211379?ha ... 8232bc70ba

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 3:49 am
Eugene Lutsenko
В JAVA есть много сходного с Эйдос, например объекты и классы. Эти термины имеют в них практически тождественный смысл. На столько тождественный, что возникает мысль использовать Эйдос в JAVA для автоматического формирования классов на основе объектов и решения на основе этого задач, которые решает Эйдос: https://vertex-academy.com/tutorials/ru ... opulyaren/ раздел: "3. Объектно-ориентированный язык":

3. Объектно-ориентированный язык
Попробуем буквально на пальцах объяснить в чём суть объектно-ориентированного программирования. Позже, в разделе Java ООП, мы посвятим целую статью этому - "Что такое ООП?" А пока Вам будет достаточно такого объяснения.

ООП - это программирование с помощью классов и объектов. Для начала разберёмся что такое объект, а потом плавно перейдём к понятию что такое класс.

Всё вокруг нас является объектом. Например,

машина - это объект
человек - это объект
кошка - это объект
собака - это объект
стол - это объект
и т.д.
У каждого объекта есть свойства. Например, свойства машины: модель, цвет, размер и т.д.

У каждого объекта есть методы (то есть действия, которые может делать объект). Например, методы машины: затормозить, нажать на газ и т.д. Ниже приводим Вам слайд в помощь.

OOP-explanation-Vertex-Academy

Как было сказано, ООП - это программирование с помощью классов и объектов. Так что же такое класс?

OOP-explanation2-Vertex-Academy

Класс - это как бы уже готовый шаблон. Приведём несколько образных примеров что такое класс.

Пример №1

Все кошки разные:

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

Пример №2

Все машины разные:

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

Напомним: ООП (объектно-ориентированное программирование) - это программирование с помощью классов и объектов. Впрочем об ООП мы поговорим детально, когда дойдём до уровня Java ООП. А пока этой информации Вам будет более, чем достаточно.

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 6:08 am
Natalia
Да, я тоже почитала на том сайте начало и увидела сходство. Решила, что классами меня не напугаешь. :D

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 8:05 am
Natalia
Дима, да я не считаю себя совсем уж балдой.

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 9:49 am
Eugene Lutsenko
я хочу сделать локальное приложение, не требующее для работы Internet, но если он есть, то имеющее дополнительные возможности

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 1:15 pm
Eugene Lutsenko
Я не смогу переписать всю систему Эйдос. Буду пытаться сделать сначала некоторые режимы, которые ограничивают по размерностям баз данных и/или слишком тормозят

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 1:22 pm
Eugene Lutsenko

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 2:28 pm
Eugene Lutsenko
наверное это уже в следующем воплощении или мне придется жить вечно чтобы все время совершенствовать систему Эйдос в новых и новых технологиях

Re: JAVA

СообщениеДобавлено: Вс янв 27, 2019 2:41 pm
Eugene Lutsenko
У меня тоже нет времени. Поэтому очень может быть, что я вообще ничего не сделаю на JAVA