[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Общего плана ->Предложения по новым курсам DL 1, 2, 3, ... 7, 8, 9, 10, 11, 12, 13
Автор Сообщение
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Мечты о виртуальной машине DL в "облаке" (ну или хоть на нашем новом сервере)

Цель - снизить порог входа в разработку функциональности для DL

1. Делаешь копию виртуальной машины для себя (в облаке, на нашем сервере, себе домой).
2. Есть технология быстрого "подхватывания" созданных изменений.
3. Итерационно: Изучай-пробуй-анализируй результат
4. Автоматизированные Code Review, Commit и Deploy на боевую DL

А что если через web-samples попробовать?

1. Даём разработчику-новичку доступ на чтение исходников DL
2. Создаём ему папку в web-samples
3. Копируем туда код который ему требуется исправить (ну или он там новый код будет создавать)
и там он исправляет - смотрит, что получилось и т.д. Так гораздо эффективнее и интереснее учиться,
чем просто читать теорию "пока не поумнеешь".

Разумеется, сначала это код без сессии (например, просмотр таблицы результатов)

а) сделать таблицу без колонок (Страна, Город, Школа), оставив колонку "Группа"
http://dl.gsu.by/restable.jsp?hd=1&hid=167274471&obid=167274471&pi=6&pi=7&pi=4&pi=10&u.c=1080&lng=rus&u.a

б) сделать страничный просмотр (иначе не увидеть результата - много пользователей, много задач)
http://dl.gsu.by/restable.jsp?hd=1&hid=61450089&obid=61450089&pi=6&pi=7&pi=4&pi=10&u.c=620&lng=rus&u.a

в) сделать фильтрацию и страничный просмотр в новых таблицах, перенести наверх clear и apply как в старых таблицах
http://dl.gsu.by/dl/scripts/results?hd=1&hid=61450089&obid=61450089&pi=6&pi=7&pi=4&pi=10&u.c=620&lng=rus&u.a

г) попробовать использовать при обработке данных DL (вывод таблиц результатов)
http://tablesorter.com/docs/
jQuery plugin tablesorterDocumentation - Flexible client-side table sorting

:?:

- Возможно такое, чтобы весь код, который он намерен исправлять, он тащил в свою папку,
а всё остальное работало из папок DL?
Приложения, установленные из WAR-файлов на один сервер, не могут пользоваться ресурсами друг друга, их выполнение изолировано. Однако они могут пользоваться общими библиотеками сервера (например, у Tomcat они расположены в ${catalina.base}/lib), но такие библиотеки с помошью war-файла установлены быть не могут.
https://ru.wikipedia.org/wiki/WAR_(%D1%82%D0%B8%D0%BF_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0)
Получается, всё что нужно для исполнения кода, нужно тащить к себе, даже если не будешь править.

- Сейчас для web-samples создаётся web-samples.war
Я читал, что JSP могут компилироваться на лету - может нам во время отладки так выгоднее?

- Как создаётся war-файл?
jar cvf archiveName.war
сделать батник с параметром archiveName прямо в каталоге web-samples
https://ru.wikipedia.org/wiki/WAR_(%D1%82%D0%B8%D0%BF_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0)
Если без war-нельзя, придётся каждый раз его создавать
?и загружать в web-контейнер (устанавливать на один сервер)

- Придётся для каждого разработчика-новичка делать свой war-файл для его подпапки?

Как создавать/исправлять jsp-файлы в web-samples так, чтобы изменения подхватывались и отображались здесь
http://dl.gsu.by/web-samples/jsp-course/index.jsp

Например, в файле helloFromJsp.jsp
Я хочу заменить строку <%="Hello from JSP"%>
На строку <%="Hello WORLD from JSP"%>

Что я должен сделать?
(Желательно конкретную пошаговую инструкцию, которую я смогу выполнить)

Я попробовал исправить текст – не удалось сохранить – говорит файл открыт другой программой

helloFromJsp.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head> <jsp:include page="statics/head.jsp"/> </head>
<body>
<div id="content">
    <div>
        <p><h2>Результат :</h2></p>
        <%="Hello from JSP"%>
    </div>
    <jsp:include page="statics/tail.jsp?pageId=35586051&name=helloFromJsp.jsp"/>
</div>
</body>
</html>


Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Cоздал папку new внутри web-samples
Скопировал туда restable.jsp

Оригинальная ссылка на DL
http://dl.gsu.by/restable.jsp?hd=1&hid=167274471&obid=167274471&pi=6&pi=7&pi=4&pi=10&u.c=1080&lng=rus&u.a

Новая сслыка
http://dl.gsu.by/web-samples/new/restable.jsp?hd=1&hid=167274471&obid=167274471&pi=6&pi=7&pi=4&pi=10&u.c=1080&lng=rus&u.a
http://dl.gsu.by/web-samples/new/restable.jsp

Скопировал в папку new подпапки restable и session(там есть файл session.jsp), всё равно ошибка
File [/session/session.jsp] not found

HTTP Status 500 – Internal Server Error

--------------------------------------------------------------------------------

Type Exception Report

Message /new/restable.jsp (line: 25, column: 1) File [/session/session.jsp] not found

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: /new/restable.jsp (line: 25, column: 1) File [/session/session.jsp] not found
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:291)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:97)
org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:346)
org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:381)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:484)
org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1800)
org.apache.jasper.compiler.Parser.parse(Parser.java:142)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:127)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:196)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Интересно, что у меня есть права
- создавать подпапку New внутри web-samples
- копировать файлы в new

И нет прав
редактировать файл index.jsp внутри web-samples
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
http://dl.gsu.by/differentialStudy.jsp?dSid=721
http://dl.gsu.by/web-samples/new/differentialStudy.jsp?dSid=721

Добавил папки

WEB-INF
WEB-INF\TLD
и файл
/WEB-INF/tld/dl.tld


всё равно ошибка
to find taglib "dl" for URI: /WEB-INF/tld/dl.tld

HTTP Status 500 – Internal Server Error

--------------------------------------------------------------------------------

Type Exception Report

Message Unable to find taglib "dl" for URI: /WEB-INF/tld/dl.tld

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: Unable to find taglib "dl" for URI: /WEB-INF/tld/dl.tld
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:293)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:80)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:176)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:434)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1448)
org.apache.jasper.compiler.Parser.parse(Parser.java:145)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:201)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.


--------------------------------------------------------------------------------

Apache Tomcat/8.5.12

Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Замечания по содержанию диплома
(цель – максимально помочь начинающим разработчикам DL)

1 Инструментальные средства

Сказано было -
1) не нужно писать вообще (как сказал Вадим это описано много где в Internet и гораздо подробнее)
2) Забудь про свой GitHUB до особого распоряжения

Нужно писать, как это конкретно устроено в DL
- в DL.GSU.BY
- в DLVM
с указанием конкретных полных путей (каталогов) и точных названий файлов

Обязательно добавить КАРТИНКИ, отображающие размещение папок, файлов и программ

«Обычно страницы упакованы в файловые архивы .war и .ear.»
Ear у нас не используется? Почему? Можно не писать.
War используются – нужно конкретно описать, как их создавать
Мы пишем для тех, кто начинает разработку на DL.

На какие вопросы ты должен ответить в тексте своей первой главы
Давай с этого начнём – есть несколько человек, которые ждут твоего объяснения – пока не могут дальше двигаться.
То, что уже написал не удаляй – просто ДОБАВЬ текст об этом:

1. После установки у себя виртуальной машины
- как менять исходники так, чтобы DLVM подхватил изменения
с конкретным примером
С какой тебе удобнее JSP
- показываешь вид странички до изменений
- добавляешь вывод строки «здесь был Вася»
- показываешь шаги, приводящие к подхватыванию исправленного кода в DLVM

2. Иллюстрируешь (если можешь) известные тебе возможности ОТЛАДКИ JSP-страниц (в Idea?)

3. Как загружать проверенные изменения на боевую DL?
- создать патч
- сделать коммит ..
- запросить deploy

Как только напишешь 1.(как менять исходники)
– сразу присылай


Замечания по оформлению

Введение

должно быть полной страницей как минимум, ещё лучше – две полных
Можно и нужно дополнить несколькими абзацами СОДЕРЖАНИЯ примеров JSP страниц, которые полезны новичкам и которые ты выполнил

Это можно будет сделать потом – сначала – как менять исходники – люди ждут.
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль


Карнаухова Алёна:

Возможно, это не все, но совершенно точно нужны задания по SQL и Java.
По SQL - хотя бы основы типа запросов на выборку из таблиц, занесение/изменение/удаление записей, создание таблиц (часто нужно, например, создать временную таблицу в процедуре). И, конечно, создание процедур и функций, а для этого - основы TransactSQL (именно этот язык, потому что база данных DL использует MS SQL Server).
На Java написана львиная доля исходников DL, поэтому без нее - никуда. Причем знания Java нужны основательные и разнообразные, начиная с "сложить два числа" и заканчивая многими определенными в Java классами, связью с БД и прочим. Вопрос в том, как уложить все необходимое в минимум, который не растянулся бы в тысячи задач и сотни страниц теории (и при этом желательно не повторять документацию Java - хотя взять ее за основу можно, это очень хорошая штука, на самом деле).
Не помешал бы HTML, все-таки без него не обходится ни один сайт, и DL не исключение. Углубляться в дебри не нужно, если будущие разработки не будут связаны именно с этой частью, но хотя бы минимальное представление получить стоит.
Среди исходников также встречаются файлы .asp, поэтому познакомиться с технологией ASP тоже может быть полезно. Здесь как раз пригодится знание HTML.
Это нельзя считать полным и подробным перечнем необходимых заданий, но как план разработки такого перечня - сойдет.

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


Предлагаю двигаться параллельно:

1. Ты решаешь проблему интеграции заданий тестирования JavaScript с DL
.... составляешь подробную инструкцию по установке таких заданий
.... согласовываешь с Лёшей Гуленко и мной
2. Составляешь оглавление Теории и Заданий - разнося все пункты по трём частям
.... без этого точно нельзя
.... нужно почти всегда
.... было бы полезно
3. Сначала делаешь задание, потом пополняешь справку по теории для выполнения этого задания
.... (в порядке от "без этого нельзя" к "было бы полезно")

Общие принципы
- оглавление заданий и теории должно быть безусловно одинаковыми
.... (даётся минимум теории необходимый и достаточный для выполнения конкретного задания)
- Таблицы баз данных берём точно из DL
.... С Вадимом согласуем
....... можно ли на чтение обращаться к реальным таблицам?
....... или где-то их копии по структуре и уменьшенные в количестве записей создадим
....... сначала все задания только на чтение?
....... потом на создание временных таблиц
....... потом на модификацию копий реальных таблиц DL для тестирования

Причем знания Java нужны основательные и разнообразные, начиная с "сложить два числа" и заканчивая многими определенными в Java классами, связью с БД и прочим. 
Можно также отобрать полезные готовые задания (например все техминимумы) из Ускоренного курса - 2016 и использовать уже подготовленную теорию:
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Повышение надёжности и качества функционирования сайта дистанционного обучения DL.GSU.BY

На DL-сервере в папке c:\Data\dl2\tomcat\logsDL\exceptions\
содержатся логи ошибок, которых происходит каждый день великое множество.

Хорошо бы анализировать их и последовательно избавиться от всех ошибок.
Чтобы логи стали пустыми в идеале.

Здесь
содержится дока и ссылка на запуск по утитите Exception Analyzer, которую написал Саша Козлов в 2005 году на Java 1.4

Сейчас она запускается, просит ввести ID и пароль, но войти не даёт.
Можно попробовать реанимировать её или ПЕРЕПИСАТЬ, чтобы упростить работу по анализу логов.
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Курс "WEB-технологии для начинающих"
- сдать задачи по JavaScript DOM с помощью jQuery, задокументировать решения, написать теорию


Рекомендации по решению JavaScript DOM задач
Решение и установка задач по JavaScript DOM (Морозов Александр, ПО-41, июнь 2018, диплом)
Задания по обучению JavaScript DOM с решениями (Морозов Александр, ПО-41, декабрь 2017)
Учебник по JavaScript DOM для начинающих (Морозов Александр, ПО-41, январь-июнь 2018)

Учебник по jQuery
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль
Differential Study 4 ( Стратегические цели )

- не убираются задолженности после пересдачи
- добавить режим "учёт языка" (чтобы можно было повторно решать для другого языка)
- в задолженностях ученика выводить дату создания и дерево (DS, DS2, DS4)
- запретить сдачу задолженностей без преподавателя
- время создания странички с задолженностями показывать
- медленно открываются задолженности - индексы вводить?
- сделать показ исходников рисунками


Бышик Ярослав сделал в июне 2017

- протоколирование задолженностей (фиксация входа в "Не знаю" в DS и DS2)
- отображение списка должников (и списка задач-задолженносей для каждого)

JSP

adminDebtsLog.jsp
adminUsersWithDebts.jsp
debtsLinks.jsp

Java

AddDebtController.java
AdminDebtsLogController.java
DebtsController.java
Даниил Морозов

Темы: 4
Сообщений: 11

Мой профиль
Здравствуйте! Для дальнейшей работы с DL мне нужно скачать java исходники. Я пробовал скачать по примеру из дипломной работы Осадчего Р.Д. (через SVN), но после ввода ссылок на исходники (которые размещены на Confluence http://confluence.newit.gsu.by/display/dldev/Subversion) SVN перестаёт работать и в последствии выдаёт ошибку. Подскажите, пожалуйста, другой способ скачивания java исходников.

По поводу курса web технологии для начинающих. Я прошёл HTML и CSS. HTML сделан отлично, даны все нужные теги, теория краткая и понятная. Единственное, что можно добавить, это HTML5. По поводу CSS: всё тоже самое, только можно добавить работу с классами, фоном и CSS3.
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль


Даниил Морозов:

Здравствуйте! Для дальнейшей работы с DL мне нужно скачать java исходники. Я пробовал скачать по примеру из дипломной работы Осадчего Р.Д. (через SVN), но после ввода ссылок на исходники (которые размещены на Confluence http://confluence.newit.gsu.by/display/dldev/Subversion) SVN перестаёт работать и в последствии выдаёт ошибку. Подскажите, пожалуйста, другой способ скачивания java исходников. 
Давай сначала с этим разберёмся. Чтобы тебе помогли, приведи подробно с картинками, что ты делал и что увидел. Залей куда-нибудь этот файл, и здесь ссылку на него сделай.

По поводу курса web технологии для начинающих. Я прошёл HTML и CSS. HTML сделан отлично, даны все нужные теги, теория краткая и понятная. Единственное, что можно добавить, это HTML5. По поводу CSS: всё тоже самое, только можно добавить работу с классами, фоном и CSS3. 
Спасибо. Теперь надо продолжить с JavaScript DOM. Попробуй сдавать двумя способами -
1) непосредственно JavaSCript
2) с помощью JQuery-аналогов JavaScript-функций
Мария Кугейко

Темы: 16
Сообщений: 1399

Мой профиль


Даниил Морозов:

Здравствуйте! Для дальнейшей работы с DL мне нужно скачать java исходники. Я пробовал скачать по примеру из дипломной работы Осадчего Р.Д. (через SVN), но после ввода ссылок на исходники (которые размещены на Confluence http://confluence.newit.gsu.by/display/dldev/Subversion) SVN перестаёт работать и в последствии выдаёт ошибку. Подскажите, пожалуйста, другой способ скачивания java исходников.
 


Здравствуйте, Даниил.

Вы все так же выполняли в Total Commander?
- создать папку
- зайти внутрь в нее
- правая кнопка мыши выбираем SVN Checkout
- в поле URL of repository вводим https://svn.newit.gsu.by:465/svn/dl2-web/branches/java8
- нажимаем кнопку OK
- ждем пока идет скачивание
Даниил Морозов

Темы: 4
Сообщений: 11

Мой профиль
Да, всё делал именно так. При нажатии кнопки "ОК" SVN перестаёт работать(не отвечает). В дальнейшем, он начинает перекачивать, но в итоге выдаёт ошибку. Подробнее об ошибке и моих действиях: http://confluence.newit.gsu.by/pages/viewpage.action?pageId=35946498
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль


Сергей Щукин:

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

Date: 29-07-2018 11:22:22.531
Error ID: 290718_65_1
Error type(hash): 129
User ID: 100105
Lang ID: 1
URL: http://dl/task.jsp?nid=872777&cid=789
Exception:
java.lang.RuntimeException: java.sql.SQLException: Invalid column name Random.
java.lang.RuntimeException: java.sql.SQLException: Invalid column name Random.
at dl2.editor.GroupsOfVariants.getforbiddenNodeID(GroupsOfVariants.java:564)
... 


Вадим Копиченко:

Достаточно просто обновить ROOT.war до последней версии исходников по инструкции.
Тогда недостающий столбец в БД создастся автоматом через liquibase. 
Михаил Долинский

Темы: 1982
Сообщений: 47182

Мой профиль


Сергей Щукин:

У меня на виртуальной машине возникла ошибка при открытии задания.
Выдает ошибку в файле taskviewWT.jsp
Это файл который был на dl я с ним ничего не делал (он изначально выдает ошибку).
Каким образом её можно исправить? 



Вадим Копиченко:

An exception occurred processing JSP page /taskviewWT.jsp at line 16

13: <%@ include file='afterSendRedir.jsp' %>
14: <dl:body loginReq="true" sync="true" body="true">
15: <%
16: int nodeId = Integer.parseInt(request.getParameter("nid"));

Stacktrace:
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at org.apache.jsp.taskviewWT_jsp._jspService(taskviewWT_jsp.java:223)

Выходит, в URL страницы пропал параметр "nid".
Дальше нужно расследовать пропажу через http://confluence.newit.gsu.by/display/dldev/Chrome+dev+tools и HAR: http://confluence.newit.gsu.by/display/dldoc/DL+Troubleshooting

Интересно понять, зависит ли это от конкретной задачи или ещё чего-то.
Стоит также обновить ROOT.war до последней версии исходников. 
 
Индекс форума ->Общего плана ->Предложения по новым курсам DL 1, 2, 3, ... 7, 8, 9, 10, 11, 12, 13
Time:0,051