Замечания и предложения

Ну, прежде всего это вопрос финансирования: терминальный доступ на серверах MS да с отдельной учеткой на сервере для каждого студента/школьника – это очень дорогое удовольствие по лицензиям. Не говоря уже про клиентские RDP лицензии, надежный выделенный сервер (желательно с RAID и дублированными БП) + хороший UPS с дистанционным управлением и мониторингом, грамотно настроенные внешние бэкапы (опять же железо + софт + настройка), быстрая качественная сетка (или лицензии на Citrix) и грамотного админа для всего этого хозяйства. И это далеко не полный список того, что надо для надежной, безопасной и бесперебойной работы такой сети с доступом в Инет.

Если бы у них на все это были деньги/ресурсы, они бы так не извращались, как сейчас.

Цитрикс - он дорогой, конечно. А RDP майкрософтовские - там лицензия $60 - 80 на место. А учетки - Uch01, Uch02,… По числу терминальных станций.

У меня просто нет слов! Жесть! Бедная, полуграмотная училка… Её бы саму на какие-нибудь курсы для чайников отправить, прежде чем к детям и школьным компам подпускать! “Голь на выдумки хитра” – но для этого “голь” должна быть, как минимум, квалифицированной. А то, что вы описываете – это же на грани профнепригодности!

Ну, это я понимаю. Вы сами сказали. Кастомные настройки важны только для единиц. Поэтому массово их надо сносить.

По идее надо делать два разных инсталлята и всё. Или писать батник и инсталлировать тогда через него. Продвинутым. С опциями командной строки.

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

1 лайк

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

1 лайк

7 сообщений перенесены в тему Болталка PascalABC.NET

Я все равно вас не понимаю – вашим студентам не нужно будет массово что-то включать в инсталляторе: если вы когда-нибудь обновите содержимое этих файлов в исходниках, то обновится дата их создания и файлы у всех студентов перепишутся автоматом даже при выключенной опции

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

Единственная ситуация, когда кому-то прийдется включать эту опцию – это если файлы были испорчены и он не знает, как их иначе восстановить. Ну столкнется студент-айтишник первый раз с такой ситуацией, спросит у преподавателя один раз – и весь класс сразу узнает, как это элементарно лечится. Где проблема-то?

Странно, что Вы боитесь батников. Я бы выложил такой батник раз уж так надо и не тратил бы кучу времени чтобы понять, как эти опции делаются в NSIS.

Бесшумная установка кстати - с ключом /S

Я не знаю, как удобнее это будет сделать средствами NSIS, но я бы предложил для простоты (чтобы не плодить тучу командных опций) при наличии параметра /s для “тихой” установки сначала искать и парсить файл, указанный явно в командной строке:

PascalABCNETSetup.exe /s my_settings.ini

Если файл явно не задан, то искать в текущей папке, откуда запускается инсталлятор, дефолтный файл настроек PascalABCNETSetup.ini или PascalABCNETMiniSetup.ini, соответственно. При отсутствии явно указанного или дефолтного файла, но наличии в команде параметра /s выдавать ошибку и прерывать установку. Кроме того, нужны консольные коды завершения установщика: с любой ошибкой (1) и без (0), как минимум.

Файл “тихих” настроек должен иметь простой формат, напр. классический .ini, где одна текстовая строка – один параметр, с разбивкой по группам, как в дереве настроек через GUI.

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

Я их не боюсь, но это просто неудобно и неправильно – требовать обычную переустановку через батник только для того, чтобы не затереть по умолчанию пользовательские настройки. Так никто обычно не делает, поскольку это против правил best practices в Windows!

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

@Admin, помните, Вы говорили про написание статей и руководств по PascalABC.NET? Как считаете, есть смысл написать статью по приёмам оптимизации кода?

Нет конечно. Оптимизация - это высоконаучная область. Из популярного изложения почитайте например Ахо. Компиляторы (последнее издание)

1 лайк

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

2 лайка

Понятно. Это конечно другая оптимизация.

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

2 лайка

Я и не говорю, что переписывать. В Паскале много своих особенностей. Например то, что локальные переменные работают быстрее глобальных, работа с указателями отличается от C#. Я, кстати, уже спрашивал про оптимизацию с помощью хэша процессора, но никто мне так и не ответил.

1 лайк

Ахо теперь что, без Ульмана пишет? Я когда-то по их книге писал кросс-компилятор… Эх, были же времена…

1 лайк

Если Вы их обнаружили, может быть, стоит говорить о том, чтобы рассказать именно в этом ключе, что быстрее работает и почему?

Прямо здесь рассказать, или в статье?

Как Вы смотрите на то, чтобы добавить какое-нибудь ключевое слово (подобное out - модификатору параметра из C#, или, насколько помню, рез из КуМир). При чтении заголовка подпрограммы можно будет сразу понимать какая переменная не будет считаться инициализированной при входе в тело подпрограммы, и инициализация которой обязательна до завершения подпрограммы.

В языке Паскаль любому формальному параметру, который не имеет описателя var, при вызове подпрограммы должно быть сопоставлено некоторое значение. Нет var - оно копируется в формальный параметр. Есть var - в формальный параметр копируется ссылка. Просто, как мычание, в чем проблема-то?