[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

JAVA

Модераторы: ТВЧ, Petrovich

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 3:24 am

В системе Эйдос 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
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 3:31 am

Natalia писал(а):https://vk.com/topic-111905078_34027481
хорошая подборка книг, есть даже несколько для детей.

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

Да, очень хорошая подборка. Есть даже для детей, бабушек и дедушек, т.е. прямо для меня: https://vk.com/doc26879026_437211379?ha ... 8232bc70ba
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 3:49 am

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

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

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

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

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

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

OOP-explanation-Vertex-Academy

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

OOP-explanation2-Vertex-Academy

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

Пример №1

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

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

Пример №2

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

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

Напомним: ООП (объектно-ориентированное программирование) - это программирование с помощью классов и объектов. Впрочем об ООП мы поговорим детально, когда дойдём до уровня Java ООП. А пока этой информации Вам будет более, чем достаточно.
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

Сообщение Natalia » Вс янв 27, 2019 6:08 am

Да, я тоже почитала на том сайте начало и увидела сходство. Решила, что классами меня не напугаешь. :D
Аватара пользователя
Natalia
 
Сообщения: 6255
Зарегистрирован: Вт сен 18, 2012 2:24 pm

Re: JAVA

Сообщение Natalia » Вс янв 27, 2019 8:05 am

Дима, да я не считаю себя совсем уж балдой.
Аватара пользователя
Natalia
 
Сообщения: 6255
Зарегистрирован: Вт сен 18, 2012 2:24 pm

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 9:49 am

я хочу сделать локальное приложение, не требующее для работы Internet, но если он есть, то имеющее дополнительные возможности
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 1:15 pm

Я не смогу переписать всю систему Эйдос. Буду пытаться сделать сначала некоторые режимы, которые ограничивают по размерностям баз данных и/или слишком тормозят
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

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

Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 2:28 pm

наверное это уже в следующем воплощении или мне придется жить вечно чтобы все время совершенствовать систему Эйдос в новых и новых технологиях
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: JAVA

Сообщение Eugene Lutsenko » Вс янв 27, 2019 2:41 pm

У меня тоже нет времени. Поэтому очень может быть, что я вообще ничего не сделаю на JAVA
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Пред.След.

Вернуться в Chaos and Correlation

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron