Гостевая книга

Здесь вы можете оставить сообщение для владельца сайта, отзыв о функционировании, оформлении, содержании и вообще написать всё, что думаете по этому поводу. Просьба придерживаться темы ("по этому" — это ещё не "по любому") и соблюдать приличия :-)

Обратите внимание, что связаться с автором сайта можно также и через страницу обратной связи, которая позволяет отправить автору email.

Учтите, что комментарии на этом сайте премодерируются.

[Все старые комментарии перемещены в архив >>>]

Выживание в цифровом мире

Андрей Викторович, сейчас, кажется, без смартфона никуда, особенно в Москве, QR-коды, мобильный банкинг, приложения такси, гос-мос-услуги и все остальное в Интернете. Многие вещи уже заведомо подразумевают использование смартфонов, т.к требуются селфи или данные с датчиков (геолокация или даже гироскоп, по которому следят за манерой вождения автомобиля таксистами). Для образования требовались компьютер с Windows, Zoom, Skype, Microsoft Office, а на смартфоне WhatsApp, никто с СПО возиться не хочет. Как с этим быть? С теми кто хоть как-то высказывает свое возмущение не церемонятся, семеро одного не ждут, не хочешь - твои проблемы, увольняйся, отчисляйся. Не только о приватности и столлмановщине речь, но ведь даже альтернативы нет, человек должен использовать "экосистему" от Apple, либо от Google, соглашаться с и их пользовательскими соглашениями, что бы получить услугу от своего государства, должен в случае с таксистами, подвергаться штрафам от работодателей, которые используют данные с датчиков, которые не имеют никакой поверки и никто не отвечает за их точность и многое другое. Как-то это странно и не отрегулировано все, ведь нет даже законов, которые обязывали бы человека иметь не то что смартфон, а даже номер телефона, но такой человек выпадает из жизни

Жизнь без смартфона

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

Выпадает он разве что из "жизни" в понимании т.н. "потребителей контента", живущих в смартфонах.
Все сферы "деятельности", работа в которых требует какого-то активного использования смартфона, в подавляющем большинстве случаев будут представлять из себя лютую дичь.
Про сенсорный экран лучше вообще промолчать - этот "интерфейс" ни для чего серьёзного не годится. Ну, может, только в электронных книгах (планшетах) как-то более-менее юзабелен и то только для очень ограниченного класса задач.
Навязывают очередное мобильное приложение? Активно отказываться, всем своим видом показывая, что предпочитаете пользоваться нормальным ПК.

admin аватар

Лично я не

Лично я не использую смартфоны. И я пока что не заметил, чтобы "выпал из жизни".

Всё это вопрос личного выбора. Готов быть цифровым рабом на цифровых галерах и носить цифровые зонды в заднице — им и будешь. Не готов — разбей смартфон об асфальт и купи бабушкофон (и, кстати, желательно, чтобы этот бабушкофон лежал всегда дома, то есть работал как телефон, но не как мобильный), забудь про то, что можно деньги платить как-то иначе, нежели наличными, предложение поставить мобильное приложение (любое) рассматривай как личное оскорбление. И всегда, везде, где только кому-то придёт в голову спросить, есть ли у тебя мобильное приложение такое-то там, гордо отвечай "я не пользуюсь смартфонами". Во всяком случае, я вот именно так и делаю.

Да, придётся обойтись без каршеринга и арендных велосипедов. А такси придётся либо голосом заказывать, либо "тормозить" по-старинке, встав на краю тротуара и подняв руку (часто выходит дешевле, чем через агрегаторов). Ничего, это не страшно. Я, во всяком случае, серьёзных неудобств не замечаю.

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

Parthen аватар

Итак, у нас есть

Итак, у нас есть программа с посимвольной обработкой ввода.

...
TestProcedure(f1);
if IOResult <> 0 then
    write('Succesful')
...

Внимание вопрос: если во время исполнения прцедуры произойдет ошибка, как себя поведет программа? Выйдет ли она из процедуры, или в самой процедуре напишет невнятную ошибку?

admin аватар

Зависит от

Зависит от того, в каком режиме ({$I-} или {$I+}) была откомпилирована та строчка программы (внутри этой TestProcedure), при выполнении которой случилась ошибка.

Parthen аватар

Тогда вопрос.

Тогда вопрос. Изменится ли IOResult, если ошибка возникла в процедуре, а директива {$I-} прописана:
1) после процедуры, но перед проверкой
2) в самой процедуре

admin аватар

Всё это не

Всё это не имеет значения. Имеет значение только одно: тот оператор, который произвёл ввод или вывод, был скомпилирован в I- или в I+.

Опечаточки и одна НЕПОНЯТКА :-)

Том 1, страница 602, конец последнего абзаца:
"Паскаля закончит командой" - пропущено ":" в самом конце.

Том 1, страница 613, первый абзац параграфа про Псевдокоманды:
"--- нам уже известны из \Sx\ref{memory_reservation}" - я так понимаю это синтаксис какой-то команды LaTeX'а, который подставил бы: <длинное тире> нам уже известны из <знак параграфа>.3.2.3. (Директивы для отведения памяти).

Том 1, страница 624, 2 абзац с черточки после определения <<ленивой>>:
Однако ассембер... - пропущена буква 'л', ассембЛер

Ну и лично для себя хотелось бы прояснить одну непонятку:

Том 1, страница 579, предпоследний абзац. Никак не пойму пример с использованием and, написано, что можно получить остаток от деления беззнакового числа на степень двойки (от 1 до 32 степени); приводится пример "and eax,3" - мол, оставит в eax остаток от деления его исходного значения на 4. 2 в степени 3 = 8. Даже если говорить, что 3 - это не степень, а то на что делим, то почему в конечном итоге мы делим на 4?
Ну не понимаю, и все бы ничего, но ведь зудит в одном месте от любопытства происходящего :D

С наилучшими пожеланиями, Anonymous!
( Капчу как орешки щелкаю <смеется/> )

admin аватар

> "Паскаля

> "Паскаля закончит командой" - пропущено ":" в самом конце.

Ни черта там не пропущено, не нужно здесь двоеточие.

> Том 1, страница 613

Есть вот такая страничка: http://www.stolyarov.info/books/programming_intro/e2errata Там эта ошибка уже упоминается.

> ассембер

Спасибо, эту вы первым заметили :-)

> and eax,3

Ох. Ну вот 3 -- это в двоичной системе что? Это 00000...00011 (все нолики, только два младших разряда единички). Что, стало быть, делает and eax, 3? Выделяет два младших разряда, точнее -- все разряды, кроме двух младших, обнуляет. Ну а два младших двоичных разряда и есть остаток от деления на 4.

Вы случайно с ассемблерной части не начали? Если да, бросайте немедленно, вы к этому ещё не готовы. Нет, Паскаль пропустить нельзя, ничего хорошего не получится.

Вопрос по системам счисления

Андрей Викторович, добрый день!
Вопрос может и глупый, но для меня важный: почему при переводе, скажем, из двоичной системы счисления умножением каждой цифры этого числа на 2 в n-ой степени мы получаем число именно в десятичной системе? И как, скажем, перевести число сразу из двоичной в семеричную систему?

admin аватар

> почему ... мы

> почему ... мы получаем число именно в десятичной системе?

Потому что сами в ней считаем. Так нас в детстве научили.

> как, скажем, перевести число сразу из двоичной в семеричную систему?

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

Несколько

Несколько месяцев как прочитал Вашу трилогию. Можете подсказать что можно почитать теперь?

Больше всего понравился Си и хотел бы изучить алгоритмы и «практическую математику».

Спасибо.

admin аватар

Думаю, что

Думаю, что стоит перейти от "чтения" к программированию. Что нужно читать дальше — станет ясно в ходе решения практических задач.

su заменил sudo

Последовал вашему совету и давно уже удалил sudo. Недвано нужно было установить пакет из исходников (из AUR). Решил посмотреть, что произойдет, если я вызову makepkg --install не будучи root. Я ожидал, что мне откажут в доступе. А выдалось такое:

WARNING: Cannot find the sudo binary. Will use su to acquire root privileges.
WARNING: A package has already been built, installing existing package...
Installing package sct with pacman -U...
Password:

Так этот su потребовал еще пароль от root. Этот su тоже следует удалить? Стоит Arch Linux.

admin аватар

su бывает

su бывает полезен для понижения полномочий (в сеансе root'а выполнить команду под обычным пользователем). Поэтому удалять его не надо, с него надо сбросить setuid bit командой chmod u-s /bin/su

Простите, но

Простите, но чем именно в сути плохо использовать 'sudo/sudors' то/те? Естественно, кроме того что уязвимости находят частенько, как к примеру недавняя так уж, CVE-2021-3156. Вроде бы как бы позволяет гибко настроить доступ в сравнении с использованием 'su', что есть собою более безопасней использование именно 'sudo' вместо 'su' как концепции.

admin аватар

Ещё раз, и

Ещё раз, и медленно: в сеансе работы нельзя повышать полномочия. Нельзя и всё. Точка.

Разумеется, su для повышения полномочий тоже использовать нельзя, отсюда рекомендация сбросить с него suid bit. И да, ssh root@0 тоже, естественно, нельзя. И мне, ей-богу, уже надоело отвечать на этот дебильный вопрос — до вас практически в той же формулировке его успели задать человек пятнадцать. Если для вас не очевидно, почему повышение полномочий в сеансе работы — действие категорически недопустимое и полностью запретное, то вам не следует обслуживать серьёзные системы.

Весьма

Весьма благодарю! Теперь понял вопрос тот выше задаваемый не мною благодаря ответам вашим, а то из вырванного контекста как-то сложно было понять правильно о чем речь шла. И таки да, понимая ответы ваши сейчас понимаю что вопрос мой действительно /дебильный/ получился. Было бы здорово /если бы был бы/ поиск по гостевой... /вопрос в случае том ведь вовсе не задавал бы/. Спасибо.

Андрей

Андрей Викторович, здравствуйте.
Вопрос, который может Вам показаться глупым (сразу извиняюсь): как в настоящее время можно заработать честному айтишнику на три корочки хлеба (может быть с маслом), не прибегая к госбюджету, работе на чужого дядю и всяческой копирастии?
Очень хочу услышать совет вольного художника. Заранее благодарю!
П.С. Куда мне идти, догадываюсь :)) но хотелось бы с пояснениями :))

admin аватар

Зависит от

Зависит от того, что этот честный айтишник умеет.

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

Вот работы на чужого дядю избежать сложнее, тут я не знаю, чем помочь. Скажем, заказчик, который бабло платит — он к чужим дядям относится или это какой-то другой дядя, не совсем чужой? Мы вообще так или иначе обычно работаем на кого-то другого, на то и разделение труда.

Parthen аватар

В дополнение к Aseprite

Раз уж такое дело, как вообще разобраться, что опенсорс, а что нет, если плохо знаешь английский?
Ну то есть вот к примеру есть игра, на которую я всегда равнялся и считал ее идеалом в своей сфере -- Katawa Shoujo.
Я ее вроде как считал опенсорсом, потому что это одна из немногих программ, исходники которой я смотрел лично.
Но вот если посмотреть лицензию, там CC BY-NC-ND. То есть модификации делать запрещено (насколько помню, их сценарист не хотел, чтобы фанаты изуродовали произведение).
И если это программа, у которой нельзя делать производные, то она вроде как под GPL не подходит. Но в тоже время исходники всех версий открыты, денег не просят.

admin аватар

Ну, начать с

Ну, начать с того, что GPL — не догма. Больше того, раз уж я сертифицированный философ :-) — скажу, что с философской точки зрения та "свобода", которую Столлман воплотил в GPL, представляет собой прямо-таки хрестоматийный случай так называемой позитивной свободы, или свободы для. В действительности свобода (если это свобода, а не что-то другое) бывает только негативной, только "свободой от", а всевозможные "свободы для" — это, как ещё Исайя Берлин верно подметил, представляют собой лишь маски жестокой тирании (за дословность не ручаюсь, но можете глянуть мою диссертацию по философии вот тут: http://www.croco.net/croco/papers/stolyarov_philosophy_thesis_infofreedo... — там это всё разобрано).

С другой, ну вот вроде бы для программ должна быть свобода модификации. Но, например, для книг — ну, я бы сказал, вот прямо-таки ни за что, иначе найдётся масса желающих, например, исправить непонравившийся финал; ненуачо, пусть Эдмон Дантес таки женится на этой своей Мерседес, предварительно грохнув её мужа, а Базаров пусть выздоровеет, а а сын Атоса найдёт себе новую невесту, чтоб сам Атос вместе с Портосом и Д'Артаньяном славно погуляли на его свадьбе, и нефиг их всех там в финале морить, как это сделал Дюма. В общем, кто как, а вот лично я не хотел бы появления свободы модификации литературных произведений, если только это не сугубо утилитарная документация.

Если исходники открыты и денег не просят — это уже не копирасты. Конечно, правильнее было бы выделить некий "движок" и его отдать в более свободном варианте, то есть разрешить на нём делать другие игры (и совершенствовать сам движок при желании); но конкретная игра — всё-таки скорее не инструмент, как большинство программ, а художественное произведение, и требование его неизменности лично меня ни грамма не удивляет и не напрягает.

С другой, ну вот

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

И что в этом плохого? Если есть желающий исправить финал и есть желающий этот исправленный финал прочесть, то зачем же им мешать? Это уже будет проявлением информационного насилия.

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

admin аватар

Это будет

Это будет дичайшее зашумление, в котором невозможно будет отыскать оригинальные произведения, и никакие "механизмы, позволяющие что-то там узнать", тут не помогут — они будут либо сбоить то и дело, либо ими просто никто не станет пользоваться из-за полной бесполезности этого.

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

Да, кстати, вы что на моём сайте забыли? Идеи, противоположные моим, вы имеете полное право высказывать, только не здесь.

Parthen аватар

Движок они не

Движок они не свой импользуют -- Renpy, де-факто стандарт в мире визуальных новелл, идет по лицензии MIT. И кстати он и есть причина моего выбора питона когда-то :)
Ну вот насчет художественных книг есть же фанфики. Оригинал не уродуют, а своих произведениях хоть что творите.
Ну в общем, если я правильно понял, свобода изменять нужна программам-инструментам, а не произведениям.

admin аватар

Подозреваю,

Подозреваю, фанфик вы здесь сделать вполне можете — взять тот же самый движок, позвать кого-нибудь, кто умеет быстро рисовать хентайных девочек (люди, умеющие рисовать на таком уровне, встречаются намного чаще, чем можно было бы ожидать), и вперёд :-)

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

Но вот "свобода

Но вот "свобода модификации целостных художественных произведений" — это, IMHO, идея крайне неудачная.

А как же ремиксы? :)


Однажды, в студеную зимнюю пору,
Сижу за решёткой в темнице сырой.
Гляжу, поднимается медленно в гору
Вскормлённый в неволе орёл молодой.
...

admin аватар

С пародиями

С пародиями особых проблем не наблюдается, во многих юрисдикциях этот момент даже специально оговорён (в российской вроде бы нет).

Так или иначе, пародию с оригиналом никто не спутает, так что целостности исходных произведений она не нарушает.

Parthen аватар

Ну, созданием

Ну, созданием ВН я занимаюсь последние года 4 :)
Другое дело, что я вдруг вспомнил, что я вроде бы как хотел стать программистом, а не скриптером на языке Renpy/Python. Полез в Гугл искать языки, с которых пытался изучать программирование -- С++. (Спасибо тебе Гоша, удосужил).
Наткнулся на ролик IT-бороды, и вот я здесь, уже несколько месяцев изучаю все с нуля :)
P.S. Между прочим, мне вот сейчас друг предложил свою ВН сделать. Я такого не делал, всегда работал на кого-то.
Ну я конечно заявил, что только при условии распостранения исходников вместе с игрой, он согласился.
И вот фиг его знает на чем делать -- то ли на Renpy/Python, то ли пытаться вывести графику на Паскале.
Скорее все же первое, ибо я вообще не представляю, как работает Паскаль на Винде.
Ладно, я к чему. Помнится, где-то вы упоминали, что между программированием на Паскале (а я как раз осилил часть про Паскаль, но не начал еще Асссемблер) и переходу на Си должно пройти некоторое время. Так вот какое? (Ну, с небольшой поправкой на то, что на Питоне я делал некоторые вещи)

то ли на Renpy/Python,

то ли на Renpy/Python, то ли пытаться вывести графику на Паскале
Позволю себе влезть — а что понимается под "графикой"? В смысле, возможностей паскалевского crt хватит, или нужен "честный" графический режим? Просто я сомневаюсь, что пользователи-виндузятники оценят такую графику, будь игра хоть трижды гениальна по сюжету и прочему. Конечно, необходимость поддержки под Виндой вам жизнь несколько осложняет — есть, например, вот такая простая как валенок сишная "библиотека" из 13 функций, позволяющая открыть окно в графическом режиме, закрасить пиксель, нарисовать линию и реагировать на нажатие клавиш и клики мышью в этом окне — на эти кости любое мясо в плане не сильно динамичной графики нарастить можно без проблем, для ВН уж точно. Привязать ее к Паскалю вполне возможно (по крайней мере, в случае fpc — прямо сейчас попробовал треугольники по экрану погонять), но ей нужны Иксы, коих в Винде, понятно, нет (хотя, вроде, в Cygwin есть Cygwin/X, можно посмотреть-погуглить). Если хотите игру с графикой, звуком и прочим - лучше, конечно, лезть в Си, там есть, например, швейцарский нож в виде кроссплатформенной библиотеки SDL. Если интересно, у нее есть привязки к Паскалю, хотя, конечно, документация вся с примерами на Си. Короче, насчет Cygwin надо посмотреть сперва — возможно, если удастся решить вопрос с иксами, стоит утянуть вышеупомянутую gfx.

admin аватар

crt вообще не про

crt вообще не про графику

Согласен,

Согласен, формулировка не очень удачная вышла, кавычки бы "графике" не помешали. Из комментария не совсем понятно было, какого уровня графика нужна — автор указал, что освоил часть вашей книги про Паскаль, следовательно, с crt знаком. Раз вопрос был, в числе прочего, о возможности создания игры на Паскале, логично было предположить, что с иными средствами, кроме crt (а в книге в качестве инструмента для создания "игрообразных" программ разобран он), доступными в этом языке, не знаком.

Простите, что влезаю

Уважаемые Парфён и Андрей Викторович, извините что так грубо врываюсь со своим оффтопиком в ваш разговор, но просто прочитав увидел своё имя и подумал не про меня ли идёт речь?

Парфён, раз уж тут ружьё с именем Гоша на стене оказалось, необходимо чтобы оно выстрелило к концу пьесы :) Я никого к С/С++ не призывал, но может просто я не тот Гоша?

Parthen аватар

Некрасиво получилось

Я вообще про Гошу Дударя. О нем в программистком рутубе знает каждый. (На случай если Андрей Викторович замажет -- я про парня, создающего ролики языков за час)
Если вы -- он, то я на самом деле удивлен, что вы собственно здесь. И да, про С++ я говорил, когда Гоша пилил туторы по нему. Собственно его вины здесь особой и нет (разве что надо было предупредить, что это ролики не для изучения а для повторения.)
Мои извинения, если кого-то обидел :)

Очень даже красиво

Да какие тут извинения. Тут в любом случае независимо от того кто каким Гошей является, никаких обид ни у кого не могло быть.

Я в итоге не Дударь, но видимо хоть раз гляну тёзку с языком за час.

admin аватар

Вы, прежде чем

Вы, прежде чем это глядеть, я не знаю, шапочку из фольги наденьте, что ли... мозги же испортятся.

admin аватар

На Паскале

На Паскале нужно не так чтобы именно время как таковое, на Паскале нужно наработать опыт, привыкнуть думать так, как это обычно происходит при работе на Паскале.

Кстати, Free Pascal, по идее, под виндой должен работать ещё лучше, чем под *nix'ами, поскольку, как я понял, там в команде одни виндузятники.

А что такое "BH"?

Parthen аватар

ВН -- визуальная

ВН -- визуальная новелла.
А вот как вообще понять, что уже все, готов? Или это как "только избранный может понять что он избранный"?

admin аватар

Самый надёжный

Самый надёжный способ — появление у ваших программ сторонних пользователей. Ну то есть тогда уже можно точно считать, что всё окей. Второй вариант — пара-тройка законченных и работающих программ объёмом от 2000 строк каждая.

Оба этих критерия работают с некоторым "запасом", то есть, возможно, вот это вот "всё, готов" наступит намного раньше. Но вот фиг знает.

Parthen аватар

Ну, сторонние

Ну, сторонние пользователи были, если считать мои программы на питоне за программы, а не скрипты для движка :). Но я их считать не буду, мне и так за тот говнокод стыдно.
Но вот кстати сейчас что-то странное творится. К программированию немного охладел, мне все больше начинает нравиться возиться с Линуксом. Если уж начну задачу решать оо да, интересно. Но вот заставить себя начать уже сложно.

admin аватар

Я имел в виду

Я имел в виду код на Паскале, мы же вроде бы Паскаль обсуждаем, точнее, ту стадию самообучения, когда нужен Паскаль.

По поводу "охладения" — можете не волноваться, это проходит :-) просто, скорее всего, локальный эффект выгорания. Заставлять себя не надо, толку всё равно не будет.

Parthen аватар

>Заставлять

>Заставлять себя не надо, толку всё равно не будет
Вот кстати да, только недавно это понял.
А вообще, книжек по программированию у нас нормальных, кроме ваших нет. А книжек по Линуксу? (Желательно вот прям по Линуксу, а не по всем *nix)
Хотелось бы пока его "посильнее" изучить

admin аватар

А чёрт их знает

А чёрт их знает :( Книг море, а вот есть ли среди них нормальные — ...

Понимаете, лично я Linux изучал без книжек. Собственно, тогда и не было по нему книжек толком, публика слова такого не знала. А сейчас мне как-то уже и не слишком актуальны книжки по линуксу. Так что я просто не в курсе.

А не хотели бы

А не хотели бы вы написать свой учебник по Линуксу? У меня вот как-то появилось желание изумить его вдоль поперек, прошерстив половину интернета, я всё-же ничего не нашёл. Множество книг где учат работать с Линуксом через GNome или KDE и очень мало книг где хоть что-то есть про командную строку.

admin аватар

Честно говоря,

Честно говоря, не понимаю, каким должен быть такой учебник. Конкретика слишком разнится от одного дистрибутива к другому, увы.

Глобальная переменная ScreenWidth

ScreenWidth из модуля crt является глобальной переменной, а не константой. Отсюда возникают некоторые трудности, поскольку её нельзя сравнивать со своими переменными.
Например, мне нужно проверить является ли текущая позиция последней, т.е. равна ли она значению ScreenWidth:

1 for currNo:= 1 to ScreenWidth do
2 begin
3     case currNo of
4     	  firstNo: begin
5 	      prevNo := ScreenWidth;
6	      nextNo := currNo + 1;
7	  end;
8	  ScreenWidth: begin
9	      prevNo := currNo - 1;
10	      nextNo := firstNo;
11	  end;
12 { ... }
13 end;

Компилятор ругается на 8-ю строчку и выдает Error: Constant Expression expected. Я, конечно, могу завести собственную константу, но она будет работать только для окна эмулятора терминала определенной ширины, которую еще предварительно нужно узнать. Но такой вариант меня не очень устраивает.

admin аватар

Да-с... тяжело

Да-с... тяжело как-то.

Ну, во-первых, и в-главных: а как это, по-вашему, ScreenWidth может быть константой, если вы можете терминальное окошко сделать любого размера?

Второй момент: сравнивать ScreenWidth, разумеется, можно с чем угодно, лишь бы это "что угодно" было целым. Иной вопрос, что в операторе case можно использовать только константы времени компиляции. Следовательно, здесь просто не надо использовать case, он не для этого.

Ну и последнее. Чтобы достичь того, чего вы тут хотите достичь, никакой цикл не нужен. И никакой case. Если вы хотя бы для себя сформулируете, чего конкретно хотите добиться, возможно, вам станет проще.

Да, кстати, а что вы сказать-то хотели своим комментарием? Что модуль crt должен быть устроен как-то иначе? Ну так с этим не ко мне, с этим к авторам Free Pascal.

3 случая обработки

Оператор выбора я использую, потому что у меня есть еще третий случай, который я хотел показать своим комментарием, но оставил ради экономии места (но не заметил, что вставил не совсем туда). Более полный код выглядит так:

  1 for currNo:= 1 to ScreenWidth do
  2 begin
  3     case currNo of
  4         firstNo: begin
  5             prevNo := ScreenWidth;
  6             nextNo := currNo + 1;
  7         end;
  8         ScreenWidth: begin
  9             prevNo := currNo - 1;
 10             nextNo := firstNo;
 11         end;
 12         else begin
 13             prevNo := currNo - 1;
 14             nextNo := currNo + 1;
 15         end;
 16     end;
 17     applyRule(rules, initGen, nextGen, prevNo, currNo, nextNo);
 18     writeCellState(nextGen[currNo]);
 19 end;
 20 initGen := nextGen

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

admin аватар

Рискну

Рискну предложить сделать вот так:

    w := ScreenWidth;
    applyRule(rules, initGen, nextGen, w, 1, 2);
    for currNo:= 2 to w-1 do
        applyRule(rules, initGen, nextGen, currNo-1, currNo, currNo+1);
    applyRule(rules, initGen, nextGen, w-1, w, 1)

Впрочем, можно и так, как у вас, только не с case, а с обычными if'ами. Например:

    for currNo:= 1 to w do
    begin
        pr := currNo-1;
        nx := currNo+1;
        if pr = 0 then
            pr := w;
        if nx = w + 1 then
            nx := 1;
        applyRule(rules, initGen, nextGen, pr, currNo, nx)
    end

Возможны, естественно, и другие варианты.

ld компоновщик

сейчас читаю 3 часть книги,а конкретно: 3.1.4
Дочитав до момента с компоновщиком у меня возникли трудности, а именно мой дистрибутив(Manjaro) не воспринимает команду в стоке. Дальнейшие мои действия состояли в попытках установить утилиту, однако в официальных репозиториях её не оказалось(во всяком случае по прямым запросам найти не смог).
Поискав в интернете я нашёл лишь это:
https://www.gnu.org/software/binutils/
Но использовать Линукс я начал лишь в начале главы про паскаль(~3 месяца назад), и единственное на что меня хватило - распаковать архив. Впрочем, я даже не уверен что это то что мне нужно.
Поэтому и хотел спросить откуда, и как установить "ld", или его аналоги. Заранее благодарю за ответ.

admin аватар

Вообще это всё

Вообще это всё крайне странно, тот же fpc, насколько я понимаю, использует ld для компоновки. Да и nasm, если его поставить, должен был binutils притащить с собой.

Так или иначе, ld действительно входит в состав binutils; ставить binutils из исходников смысла нет, тем более что он и не соберётся без того же ld. Разумеется, этот пакет есть в репозиториях manjaro: https://discover.manjaro.org/packages/binutils

Могу посоветовать попробовать pacman -S binutils Если это не поможет — тогда я уже не знаю, надо смотреть, но как тут посмотришь.

Спасибо, вышло

Спасибо большое за ответ, команда "ld" работает исправно.
Про fpc, вышло что между главой про Паскаль и Ассемблер я сломал grub - пришлось переустанавливать дистрибутив, и по скольку связывать жизнь с Паскалем я не собираюсь(до вашей книги уже успел изучить c#, поэтому есть желание написать что то, предпочитаю его), fpc уже не устанавливал

admin аватар

C#, говорите? Ну

C#, говорите? Ну вообще реализации C# под Linux есть, но они тоже binutils с собой бы притащили. Так что остаётся только заподозрить, что вы так под форточками и сидите.

Не, ну дело хозяйское, конечно, но мои книжки вам тогда зачем? Толку не будет, я об этом прямо в предисловиях предупреждаю.

Я сейчас в

Я сейчас в процессе перехода на Линукс, да и с самого c# на время слажу, в пользу c/c++(не без вашей помощи, за что спасибо), а изучать как использовать шарп на новой для меня ОС, когда не собираешься его использовать в принципе, затея немного странная

admin аватар

Для C++ не

Для C++ не рановато? Впрочем, любой компилятор хоть C, хоть C++ под линукс тоже притащил бы за собой binutils, они по-другому не умеют.

Изучать C# под Linux действительно смысле нет, а вот в чём смысл точно есть — это слезть с форточек.

Конечно

Конечно рановато, не правильно выразился.
Конечной целью является c/c++, собственно, поэтому и начал читать ваши книги. Если конкретнее, на ютьюбе есть канал "АйТиБорода", он берёт интервью у разного рода программистов,в одном из таких роликов, про c++
(https://www.youtube.com/watch?v=QQZmDWnV618)
гость и порекомедовал ваши книги.
А писать я буду(за исключением паскаля, я конечно попробовал написать что-то сложнее условного калькулятора, очень не понравилось) на тех языках, которые изучают в разделе книги, который сейчас читаю
А с форточек я почти слез, на самом c# практически не писал.
Только с играми проблемы бывают, многие отсутствуют(хотя критичным назвать это трудно, ведь в таком случае использование форточек сводится к запуску 1-2 игр)

admin аватар

Между прочим,

Между прочим, если на Паскале не понравилось — в большинстве случаев это значит, что мозги уже испорчены. Увы. Не так чтоб прямо безнадёжно, но путь к исправлению идёт через тот же Паскаль.

Не то что бы,

Не то что бы, скорее не желание разбираться в некоторых его особенностях(в каких не вспомню, а исходники утеряны)
А сейчас уже намного более занимательная глава про ассемблер(Паскаль в базисе схож с c#, и изучать его соответственно не так интересно, чего уже не скажешь про ассемблер)

Знаете, мне

Знаете, мне тоже ВУЗе пихали C#: все, что из того получилось, так это то, что у меня пропало было желание изучать программирование. Спасибо Андрею Викоторичу, благодоря которому у меня это желание вернулось и урепилось!

Я - не преподаватель, и нет у меня пока что того уровня профессионализма как у программиста, однако на подсознательном уровне я убежден, что Вам стоит забыть (по-крайней мере на время) C# как дурной сон, и изучать программирование по книге уважаемого преподавателя так, словно Вы вообще первый раз столкнулись с программированием! Уверен, от этого будет значительно больше толка, чем от того, что Вы постоянно будете оглядываться назад на C#, сравнивая материал Андрея Викторовича с тем, что Вы изучали по C#

admin аватар

На асме писать,

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

Но проблема в другом. Паскаль нужен, во-первых, чтобы отбить желание громоздить в программе побочные эффекты, и, во-вторых, чтобы освоить указатели. С указателями вы после асма, возможно, справитесь и так (хотя не факт); а вот полное отсутствие тормозов с применением побочных эффектов, известное также как "сишность головного мозга", боюсь, в итоге ваш мозг таки сожрёт.

Постараюсь

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

admin аватар

Вы не поверите,

Вы не поверите, но принцип "одна функция — одна задача" относится к правилам декомпозиции и — пабабамс! — к побочным эффектам не имеет вообще никакого отношения. Вот вообще, совсем, ну то есть вот никакого. Это из другой сказки.

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

Для меня

Для меня побочный эффект выглядит как выход из "одной задачи",возможно из за моего не слишком большого опыта.
Побочные эффекты использовать не буду, по возможности конечно.
Спасибо за ответы

admin аватар

Побочный

Побочный эффект (англ. side effect) — это строгий термин, тут не может быть никаких "для меня", "выглядит" и прочего в таком духе.

В первом томе, причём в части II, которую вы якобы уже прошли, побочным эффектам посвящён отдельный параграф 2.3.6, и, кроме того, они неоднократно упоминаются в дальнейшем тексте (см. пример на стр. 323 и т.д.)

И недавно совсем этот вопрос обсуждался здесь в гостевой, вот эта ниточка: http://www.stolyarov.info/guestbook/archive/4#comment-3918

Вторую часть я

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

Разыменование

Здравствуйте. Читаю про указатели. Возник вопрос. Операция всегда вычисляет значение. Когда производится операция разыменования с целью получения значения результат вычисления это значение из ячейки памяти. Какое значение тогда вычисляется при разыменовании когда мы, например, присваиваем что то по адресу в указателе? Заранее спасибо за ответ.

admin аватар

> Операция

> Операция всегда вычисляет значение.

Это вам кто сказал? У операции есть значение, это верно, но далеко не всегда оно вычисляется — тут дело даже не в разыменовании, есть вот такая операция «приведение типа выражения», так она в подавляющем большинстве случаев ничего не вычисляет; есть случаи, когда вычисляет, но они редки, а обычно просто то, что было (буквально те же биты) продолжают использоваться как выражение другого типа.

> Какое значение тогда вычисляется при разыменовании когда мы, например, присваиваем что то по адресу в указателе?

Никакое. Если говорить о Паскале и чистом Си, тут даже о преобразовании типа речи не идёт, поскольку "леводопустимость" в этих языках не отражается в системе типов. В Си++ происходит (с формальной точки зрения) преобразование адреса в ссылку (если что, тут тоже вычислять нечего от слова "совсем", но тут хоть что-то происходит, и можно сказать, что именно).

Parthen аватар

Как вам такой вариант?

Есть одна программа - Aseprite. Пиксель-арт редактор, довольно популярный в узких кругах.
И у них очень интересная схема монетизации идет.
Сначала они делают новую версию, ее продают. Потом, когда сделали еще более новую версию, они у старой открывают исходники. И так каждый раз.
Но да, если хочешь бесплатно - то собирай сам из исходников. Если не умеешь, и хочешь новейшую версию - можешь купить.
Как вам такой вариант?

admin аватар

Надо

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

UPD: Посмотрел. Старые версии там под GPL, но, похоже, их стратегию вы поняли неверно. Вот абзац из FAQ:

Aseprite started being open source since its very beginning in 2001, and we were happy with that until August 2016. Now you can still download its source code, compile it, and use it for your personal purposes. You can make commercial art/assets with it too. The only restriction in Aseprite EULA is that you cannot redistribute Aseprite to third parties.

Ну то есть всё, фенита ля комедия, раньше было всё в порядке, а теперь оно копирастическое.

Как я к этому отношусь? Как и к любой копирастии: давить без сожаления.

Parthen аватар

Ну, там пока

Ну, там пока только 2 версии: 1.0 и 2.0. Полагаю, что когда выпустят третью, вторую заопенсорсят.
Я не силен в английском и понял так: делай с ней что хочешь, главное другим не давай, то что сделал.

admin аватар

> Полагаю, что

> Полагаю, что когда выпустят третью, вторую заопенсорсят.

Вы это откуда взяли? Там сказано прямо противоположное: до 2016 года нас устраивал opensource, а теперь выкусите.

> главное другим не давай

Вот-вот. Мне вот что непонятно, вы эту копирастическую мразоту оправдываете? Напрасно.

Parthen аватар

Не оправдываю.

Не оправдываю. Просто рушится замок представлений о любимой программе.
Эхх :(

Здравствуйте!

Здравствуйте! Ещё в прошлом издании читал, что системные администраторы могут ограничивать ресурсы, выделяемые системой каждому процессу, и меня это заинтересовало. Я искал в интернете, но всё, что я нашёл — это cgroups, но он не входит в стандартные поставки ПО дистрибутивов. Вы про него писали или имели в виду какое-то другое средство контроля?

Вообще, было бы интересно почитать про ваш опыт сисадминства, может сделаете как-нибудь заметку о своём опыте или историями о работе? :-)

admin аватар

Нет, я не имел в

Нет, я не имел в виду cgroups. Что я в действительности имел в виду, подробно описано во втором томе, пар. 5.3.12.

Писать мемуары в мои планы не входило.

Батька

Батька Торвальдс оказался все-таки не из этих...
https://www.opennet.ru/opennews/art.shtml?num=54970

admin аватар

Примечательно,

Примечательно, что в роли главной мрази опять этот долбаный Гугл.

Times New Roman в LaTeX

В LateX по-умолчанию используется шрифт Computer Modern, созданный Кнутом, но в учебных заведениях (в моем случае, в колледже) требуют для оформления более-менее серьезных работ, в том числе квалификационных, использовать именно Times New Roman.

Нормального решения я так и не нашел, пачкать руки об Microsoft Word я не хочу, с LibreOffice Writer я обращаться не умею. Может кто-нибудь подсказать, как можно поставить в LaTeX данный шрифт, если это вобще возможно? Буду очень благодарен.

Всё же ответа на вопрос пока нет

Добрый день!

Поддержу автора вопроса. Принципиальность - это конечно прекрасно и писать можно посылать хоть в спортлото, но на поставленный вопрос ответа, что характерно, не оказалось.

Автор, может тебе будет полезна эта статья, исключительно про варианты использования шрифтов в LaTex
https://lisakov.com/blog/latex-fonts/

Дело сдесь не в

Дело сдесь не в принципиальности, с моей точки зрения, а в том, что никто ничего вот такое требовать не в праве, по моему сугубо личному убеждению. Ну вот то есть требовать использовать платный продукт никто не имеет право, а сие требование есть ничто иное как намек на использование продукта одной скромной компании, которая через учебные заведения в том числе пробивает использование своей продукции. Ну вот если бы было требование использовать что-то из мира свободного ПО, ну вот тогда - иное дело, а так... Они могут рекомендовать, а не требовать.

admin аватар

Дело в данном

Дело в данном случае не в принципиальности. Я просто не изучал этот вопрос, мне шрифты из ворда никогда не казались привлекательными.

admin аватар

Вот интересно,

Вот интересно, у нас в МГУ ничего подобного ни от кого не требуют, а в вашем колледже — требуют. Вы уверены, что вам нужен такой колледж?

А вы думаете

А вы думаете кто-то учится за Москвой/Петербургом ради образования?)

admin аватар

Встречный

Встречный вопрос — а вы думаете, в Москве и Питере ситуация сильно отличается?

Здесь поддержу

Здесь поддержу тредстартера - требуют, причем не в колледже, а на факультете федерального универа, прям "русским по белому" в методичке по оформлению квалификационных работ. Упрощает жизнь то, что под TNR вполне успешно косит Liberation Serif, идущий в комплекте с LibreOffice.

admin аватар

Отправьте

Отправьте ксерокопию нужных страниц методички в Рособрнадзор с соответствующим комментарием вроде "безосновательно навязывают студентам использование коммерческого программного обеспечения, изготовленного американскими компаниями" — чиновники такой язык понимают очень неплохо.

Parthen аватар

Как сделать mutt как у вас?

Я тут занялся созданием нормального постоянного почтового ящика, решил заодно скачать себе клиент на компьютер. В интернете посоветовали mutt, да и вы вроде как им пользуетесь.
И вот в чем проблема: у меня mutt в терминале весь в синей гамме (эмулятор sakura-terminal). Мне этот цвет крайне режет глаза.
Если в голой консоли открыть, то уже лучше: там синеньким подсвечивается только верхняя и нижние строчки.
А у вас видео про спам из мерии Москвы был скриншот как раз mutt. Как выглядит у вас мне крайне нравится: черно-белое, не режущее глаза контрастное выделение.
В общем, как сделать как у вас? Это, я так понимаю, зависит от эмулятора терминала, тогда какой он у вас?

admin аватар

У меня обычный

У меня обычный xterm, как ни странно. Что касается цветных извращений, то вроде бы они настраиваются в /etc/Muttrc.d/* — но если сделать свой .muttrc в домашней директории, то его можно начать со слова reset, и тогда системные настройки действовать не будут. А по умолчанию вроде он и так чёрно-белый.

Вообще, честно говоря, не помню, как там всё устроено, я mutt для себя лет 15 назад настроил и с тех пор не трогал.

Будет

Будет ли хорошим выбором эмулятор терминала xfce4terminal или предпочтительнее Xterm? Xterm мне больше нравится, а вот как добавить новую вкладку, я не умею? В xfce4terminal это делается нажатием клавиш Ctrl+Shift+t.

admin аватар

В самом xterm'е

В самом xterm'е нет вкладок и никогда не было, эта функциональность для эмулятора терминала избыточна. Во-первых, самих терминалов можно открыть сколько угодно, и в общем случае это намного более удобно, ведь их можно расположить так, как удобно здесь и сейчас — например, чтобы видеть их сразу несколько. Во-вторых, если зачем-то хочется несколько сеансов в одном окошке, есть ещё программа screen (кстати, очень рекомендую её освоить, при удалённом доступе к серверам она просто незаменима).

Есть еще

Есть еще программа tmux, которая тот же screen но для меня чуть более удобная. Раньше тоже использовал screen.

За программу

За программу screen большое спасибо! И не пришлось менять терминал.

Parthen аватар

Вот между прочим

Предложу развлечение для отъявленных мазохистов.
Удалите/отключите у себя иксы. И попробуйте так недельку.
Могу вам гарантировать - в консоли вы вскоре будете чувствовать себя как рыба в воде.
Столько плюсов: запустить такую вещь можно вообще без дискретной видеокарты на старейшем процессоре, скорость сильно повысится, разберетесь как вообще можно ВСЕ делать в терминале.
А то у меня как-то в начале становления линуксоидом иксы повисли и я "все". Стартануть не получается, бекапов по классике не делал.
Но опять же, это для мазохистов.

Все хорошо, но

Все хорошо, но только как читать pdf и djvu файлы без Х. И музыку не послушать и видео не посмотреть.

без Х. И музыку

без Х. И музыку не послушать

Хех. У меня на кухне долгое время стоял комп не только без иксов, но и вообще без монитора. Как раз чтобы слушать музыку. Этакий самопальный интернет-радиоприёмник. Вместо полноценной клавиатуры я прицепил к нему USB-нумпад, на котором нужно было набирать трёхзначный индекс нужной "радиостанции" (распечатка со списком станций висела рядом на холодильнике). Ну и управлялось всё это несложной самописной программой.

admin аватар

Для музыки-то

Для музыки-то зачем графика? Впрочем, графика и иксы — это не одно и то же, без иксов при известной сноровке можно всё перечисленное, framebuffer никто не отменял.

admin аватар

А чего для

А чего для мазохистов-то? Я в консоли сидел года до 2005го, то есть startx говорил, только когда припрёт. Потом уЁбдизайнеры совсем сломали веб, стало невозможно жить без графического браузера, и постепенно, увы, перешёл на постоянную работу в иксах.

Parthen аватар

Ну вот

Ну вот представьте человек с детства больше 15 лет сидел на Винде. И тут ему такое дать. Это ж ломка натуральная будет.

admin аватар

Так когда ломка

Так когда ломка — это не мазохисты, это наркоманы :-)

Parthen аватар

Зачет по информатике

Готовлюсь к зачету по информатике. "Обработка строк и символов в Паскале". Среди прочих такие вопросы:
1. Что такое символьная строка?
2. Почему неудобно заменять строки массивами символов?
(весь зачет кидать не буду: все остальное мне вроде понятно, да и сам зачет в ВК в формате docx)
Так вот, разве символьная строка не является массивом символов?

admin аватар

Формально

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

Подробности см. в параграфах 2.6.9, 2.6.10 и 2.6.11. Ну да, в первом томе, естественно.

>FreeBSD, где

>FreeBSD, где пакетного менеджера с автоматическим отслеживанием зависимостей просто нет.

Я, наверное, чего-то не понимаю. А в чём проявляется отсутствие пакетного менеджера с автоматическим отслеживанием зависимостей?

admin аватар

Проявляется?

Проявляется? Ну, например, в том, что когда вы хотите установить в системе просмотрщик PDF-файлов, вам никто не говорит, что надо поставить ещё 165 пакетов, в число которых входит, например, программа для разбиения жёсткого диска на разделы (реальный случай, между прочим; описан в третьем томе, параграф 12.5.5).

Вы

Вы действительно правы. Предлагают установить только caja, dconf, enchant2, mate-desktop. Общей сложностью всего на 158МБ. Эти зависимости не автоматически отслеживаются?

admin аватар

Автоматически,

Автоматически, конечно. Похоже, мои сведения о FreeBSD несколько устарели — когда я с этой системой работал, pkg там ещё не было.

Пожалуй, вопрос тогда, на который беглое знакомство с материалом мне ответа не дало. Насколько этот pkg стоит рассматривать как часть FreeBSD? Вот port collection — это однозначно часть системы, тут никуда не денешься; pkg, насколько я понимаю, ставится в /usr/local, как и другие "дополнения", то есть это одна из программ, работающих на FreeBSD — но далеко не все такие программы являются частями FreeBSD. Самостоятельно ответить на этот вопрос я могу разве что поставив FreeBSD и попытавшись с ней поработать, но времени у меня на это нет вот просто категорически.

```% which

```
% which pkg
/usr/sbin/pkg
```

Насколько я могу ответить — это часть системы. Ports collection можно опционально не выбрать при установке, pkg — не выбирать нельзя. Устанавливается везде как jails и bhyve. Я не видел, чтобы pkg кто-то не использовал или агитировал против него.

Вот в NetBSD pkgsrc изначально не стоит, его предлагают поставить самостоятельно.

Наверное смогут ответить полноценние.

admin аватар

Понятно,

Понятно, спасибо. Да, если не в local, то это уже часть системы, без вариантов. Просто, видимо, те материалы, которые я вчера нашёл в режиме "быстро-быстро", тоже уже успели устареть.

В общем, поправить надо будет это место в книжке.

В копилку

В копилку фактов: в современной OpenBSD пакетная система тоже является частью базовой системы, если что.

$ ls -1 /usr/sbin/pkg_*
/usr/sbin/pkg_add*
/usr/sbin/pkg_check*
/usr/sbin/pkg_create*
/usr/sbin/pkg_delete*
/usr/sbin/pkg_info*
/usr/sbin/pkg_mklocatedb*
/usr/sbin/pkg_sign*
Parthen аватар

Различия Freepascal и PascalABC.net

Внезапно осознал, что на ЕГЭ, который мне предстоит сдавать, скорее всего не будет ни Линукса, ни FreePascal. В связи с этим вопрос тем, кто работал с PascalABC.net -- будут ли там нормально компилироваться программы с синтаксисом FreePascal?

PascalABC.NET есть

PascalABC.NET есть под Линукс, работает через mono, а не дот-нет. Соответственно, байт-компилилованные "экзешники" нужно запускать через:

mono program.exe

Если не использовать ничего Windows-специфичного (например GUI) или наоборот, FreePascal-специфичного (вроде Graph/CRT), то должно работать точно также.

Единственный тонкий момент - там точно не поддерживаются обозначения некоторых специфичных типов, вроде longinteger (integer в pascalabc соответствует лонгу в fpc), но в рамках школьного курса вряд ли такое может понадобиться. Если что, для него есть документация.

admin аватар

Оно, может, и

Оно, может, и есть, но ЗАЧЕМ? Pascal.ABC никогда не был живым инструментом и не задумывался в качестве такового, это как вместо самолёта на симуляторе летать — суррогат как он есть. На симуляторах, конечно, пилоты тренируются, но это потому что на настоящих самолётах летать чертовски дорого. Работать с тем же Free Pascal ни разу не дорого.

Затем, чтобы

Затем, чтобы сдать ЕГЭ, очевидно. Вопрос был о том, будет ли написанное под fpc работать под pabc. Ответ - в большинстве случаев будет, но есть нюансы.

Parthen аватар

Встречный

Встречный вопрос - а есть список всех этих нюансов для ознакомления?

Тут сложно -

Тут сложно - PascalABN.NET очень быстро развивается. Условно говоря, вчера еще не было in-place объявлений переменных или срезов массивов - сегодня появились. Но, опять же, базовый язык в основном совместим с fpc (то есть с Turbo Pascal), а использование лямбд и паттерн-матичинга в рамках школьного курса информатики, наверное, все-таки избыточно (но тут уже от учителя зависит).

Для этого и стоит держать у себя оба компилятора, чтобы написанное под одно с минимальным допиливанием заработало бы на другом. Мы ребенком пока напоролись только на случай с Integer/Longinteger; когда дойдут до плавучки, наверняка еще что-нибудь вылезет.

Впрочем тут уже пояснили, что для ЕГЭ требуются только ответы, на чем писать - не важно.

Да, еще одно уточнение: не PascalABC.NET есть под Линукс, а консольная версия PascalABC.NET может работать под mono.

admin аватар

Ага, понятно. Ok,

Ага, понятно. Ok, принято, возражения снимаю.

admin аватар

А что, на ЕГЭ

А что, на ЕГЭ теперь ещё и программировать на компьютерах надо? Слон сдох.

Сдавал информатику в 2012

На ЕГЭ в практической части уже давно предусмотрено написание программ. На бумажке.... как сочинение по русскому языку, только пишется блок-схема решения и программа на одном из приведённых языков.
У нас кроме Паскаля (в ЕГЭ не оговаривается какой именно Паскаль), были ещё варианты написать на Си, псевдокоде и вроде бы Си++. И уже тогда казалось что это какие-то лютые школы где выпускники на Си.
Сейчас Гугл показывает что Си++ заменён на Питон.

Parthen аватар

>в ЕГЭ не

>в ЕГЭ не оговаривается какой именно Паскаль
Только вот я очень неуверен, что проверяющие осилили Линукс.
> Сейчас Гугл показывает что Си++ заменён на Питон.
Таки нет. Мне прислала учитель пробник, там С++, Паскаль, Питон и алгоритмический язык.
Basic до этого года был, но исключили.

admin аватар

А не пофигу, что

А не пофигу, что там проверяющие осилили? Вам же не нужно посылать программу на проверку, нужно отправить только ответ.

Parthen аватар

А вот это для

А вот это для меня новость. Мне с 8 класса твердили, что проверяющие будут проверять программы. Да и на тайной имитации ОГЭ так и было.
Ну коли такое дело -- так вообще все отлично. Еще бы как-то поставить себе Линукс на комп и вообще проблем не будет.

admin аватар

Так вы линукс

Так вы линукс до сих пор не поставили? А может, ну его нафиг, это программирование? :) В мире есть много других хороших профессий.

Parthen аватар

Вы меня не так поняли :)

Линукс у меня стоял уже как полгода до того, как я вообще ваши книжки нашел :)
Я про то, чтобы на ЕГЭ себе его поставить. Я на пробнике ОГЭ смог уговорить проверяющих разрешить мне скачать и установить puppy linux. (Самый маленький по весу дистрибутив, что я нашел)

admin аватар

Э, да, пардон,

Э, да, пардон, что-то я о вас слишком плохо подумал.

Не, ну в крайнем случае отнеситесь к этому как к досадной, но не слишком серьёзной помехе. Ничего сильно сложного писать на ЕГЭ вам не потребуется, и, опять же, четыре часа — и все свободны. Не слишком приятно, но пережить можно.

Parthen аватар

Может и у меня

Может и у меня просто крыша едет. Обстановка вокруг ЕГЭ страшненькая, вся жизнь зависит от клочка бумаги и 4 часов.
Линукс для меня уже не помеха. Я натурально не представляю, как можно на долгосрочной основе работать под чем-то другим. Неудобно крайне, без тайлинга и терминала.

admin аватар

Что линукс не

Что линукс не помеха — это я не сомневаюсь :-) Помехой может стать винда с паскалем-абц или что там ещё вам предложат на ЕГЭ.

admin аватар

C++ раньше не

C++ раньше не было, были бейсик, ШАЯ, Паскль и чистый Си. Сейчас вместо бейсика питон (sapienti sat, так их растак), а чистый Си заменили на Си++ (вроде и смешно, а вроде и плакать хочется).

чистый Си

чистый Си заменили на Си++
Особенно веселит, как сформулирована причина замены - дело-то, оказывается, в большей актуальности и востребованности Си++. И пофиг, что от Си++ в тех примерах только cin и cout...

admin аватар

Да уж больше

Да уж больше десяти лет известно, что дело на самом деле в неосиляторстве этих несчастных "педагогов", которые и сами-то не могут понять, что за зверь указатель, не то что ученикам рассказать.

А то, что работа на C++ без понимания основ превращается в заклинания, спеллбуки, переписывание древних свитков и прочее вот это вот — этого все эти моральные уроды в упор не видят, чо.

Parthen аватар

Давно уже

Только вот в 2021 вводят кЕГЭ. Теперь оно будет ТОЛЬКО на компьютере. Сайтик на js сделали, загружаешь и скачиваешь с него и на него файлы. Учителей заставляют готовить усиленно, чтобы ученики могли вдобавок работать с файлами, строками как с массивами (раньше такого не было).
И вот между прочим небольшой оффтопик: код на бумажке писать это норма или нонсенс? Вы у студентов как зачеты проводите?
И да, объясните пожалуйста шутку про слона, а то такое чувство, что поисковик меня дизинформируте :)

работать с

работать с файлами, строками как с массивами
Помню, в 11 классе (эх, уж 10 лет прошло) послали меня на олимпиаду по информатике (правда, из информатики на уроках у нас была подготовка презентаций да игры в "Звездного юнгу" - кто не в теме, был на Винде XP такой стандартный пинбол, ну да не суть). Вот где-то за две недели до того сказали: "Пойдешь!", была найдена на просторах Тырнета какая-то книженция по Паскалю (ага, по Turbo, с синим окошком) и все заверте... И до глубины души я, помнится, был поражен вот этим вот моментом с файлами. Во всех заданиях входные данные нужно было читать из файла, это было отдельно оговорено. Но когда организатор заглянул через плечо и увидел вот эти вот assign, reset и т.д., у него в глазах был ужас:
- Это чо?
- Ну как, файл же тут читать надо, написано же.
- Убирай это все, пиши read - проверять будем, набьем с клавиатуры!
Вот в тот самый момент я, как та девочка из анекдота, "впервые понял, что взрослые тоже бывают тупорылыми..."
Мне-то, повторюсь, сравнивать было не с чем, я думал, когда изучают Паскаль, это рассказывают - как без файлов-то? А оказалось, что только спустя 10 лет кто-то там додумался. Вообще, можете в меня чем-нибудь кинуть, но, имхо, это первый более-менее здравый шаг - включение хоть какой-то практики в эти "тестилки".

admin аватар

Зачёты и

Зачёты и контрольные я провожу на машинах, то есть да, программирование на бумажке как вид деятельности мне совершенно не симпатичен — кроме прочего, ЭТО проверять крайне тяжело.

Про ЕГЭ посмотрел, там ахтунг какой-то с языками. Но есть и хорошая новость: от программы, которую напишете вы сами, передавать нужно только ответ. Ну а те задачи, в которых дан в том или ином виде код на нескольких языках, как правило, не зависят от особенностей диалекта, да и вообще там для человека, умеющего программировать, проблемы разобраться обычно нет.

Этот наконец сломался, несите следующего

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2028r0.pdf

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

Где вы вообще

Где вы вообще это увидели? Там нет никакого плача о проблемах поддержки std, там говорится о том, что современная имплементация крайне неэффективна (а всякие хэш-мапы вообще небезопасны, их нельзя совать в продакшен), но её не меняют, потому что боятся сломать совместимость со старым кодом, который существует только в бинарном виде. Наоборот, чувак пишет о том, что нужно смело ринуться в бой, всё сломать, но сделать всё более эффективным, иначе Си++ останется на задворках истории, потому что даже стандартные регулярные выражения в два раза медленнее питонячьих (даже удивительно как им удалось достичь таких феноменальных результатов). А абзац, который вы упомянули, говорит о том, что многие перестают использовать std, потому что она тормозная, а ускорить нельзя без ломания обратной совместимости, и что скоро std будет использоваться только студентами на лабах. Вердикт - надо ломать. Пишу это безотносительно отношения своего и окружающих к std, просто вы неверно проинтерпретировали текст (с точностью до наоборот, я бы сказал), а я не могу спать пока в интернете кто-то не прав.

Читаем в контексте

Что ж, давайте разбираться. Во-первых, реализации в таком состоянии по одной-единственной причине -- спецификация не позволяет сделать иначе.
За спецификацию во многом отвечают члены комитета, которые имеют весьма посредственное представление о последствиях своей "деятельности".
Собственно, основная часть документа представляет собой ликбез по теме ABI, с которым, цитирую, "relatively few of us have much hands-on experience".
Эти же персонажи часто плачут, что люди, занимающиеся реализацией, не дают исправить недостатки спецификации (известные уже на момент выхода оной) десять лет спустя.
Причём, один раз такую глупость уже совершили, а раз уж члены комитета (пусть и компиляторщики) не хотят повторения перехода на С++11 -- это кое о чём всё-таки говорит.
Тем не менее приводится ряд мотивирующих примеров, который надо трактовать так: "да, мы сами сделали эту хрень, но уж в следующий раз мы точно всё сделаем правильно(tm)".

Во-вторых, последний абзац на самом деле перечисляет примитивы, которые (с оговорками) нет смысла переписывать: динамические массивы и строки.
Но только потому что с ними сложно напортачить, да и используются они почти повсеместно.
(Здесь следует оговориться, что автор представляет интересы Гугла в комитете, для которых вычислительные ресурсы дороже человеческих)
Особенно уморительно это смотрится на фоне последних двадцати лет, на протяжении которых от сторонников стандартной библиотеки можно было слышать лишь "используйте её: она есть везде, переносима, написана людьми умнее и оптимизирована по самое что ни на есть -- написанное вручную не будет более эффекитвным".

В-третьих, предложение "всё сломать" на самом деле влечёт за собой предложение "давайте ломать каждый раз".
И речь не только о "старом коде, который существует только в бинарном виде" -- так и видится картина полной пересборки репозиториев дистрибутивов Linux, потому что разработчики нескольких библиотек поддержки решили использовать новый ABI.
То есть каждые три года (5? 10?) предлагается пересобирать весь существующий софт, потому что кто-то решил "Почему бы нет? Зато производительность!".
(Описанное является очевидным преувеличением, но видимость стабильного ABI не стоит недооценивать)

Наконец, сама проблема является штатной для библиотек в целом -- рано или позно приходится выбирать между обратной совместимостью и новыми возможностями.
В данном случае всё раздуто из-за выдуманной статусности "стандартной" библиотеки (в реалиях С++) -- это всего лишь библиотека, и если она плохо решает (или не решает вовсе) практические задачи, то она никому не нужна.
Очевидно, есть тот самый эффект насаждения в течение двадцати лет, но собственные мозги никто не отменял.
А если язык программирования может "остаться на задворках истории" из-за библиотеки, там ему и место.

admin аватар

К сожалению,

К сожалению, эти мрази, превратившие C++ в дурно пахнущее месиво, всё равно не остановятся.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

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

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <ins> <del> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Проверка на бота
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.